1. 描述Linux目錄結構以及目錄結構命名規(guī)定
Linux目錄結構
-
/
:根目錄 -
/boot
:與啟動相關含有重要的內核。引導文件存放目錄满着,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放于此目錄贯莺。 -
/dev
:硬件风喇。設備文件及特殊文件存儲位置。
c: character device魂莫,線性訪問
/dev/sda
:硬盤。
/dev/sr0
:光盤爹耗。
/dev/zero
:“零”設備耙考,可以無限的提供空字符(0x00,ASCII代碼NUL)潭兽。常用來生成一個特定大小的文件倦始。
/dev/null
:“空”設備,也有人稱它為黑洞山卦。任何輸入到這個“設備”的數(shù)據(jù)都將被直接丟棄鞋邑。最常用的用法是把不需要的輸出重定向到這個文件。
/dev/random
與/dev/urandom
:隨機數(shù)設備账蓉,提供不間斷的隨機字節(jié)流枚碗。二者的區(qū)別是/dev/random產(chǎn)生隨機數(shù)據(jù)依賴系統(tǒng)中斷,當系統(tǒng)中斷不足時铸本,/dev/random設備會“掛起”肮雨,因而產(chǎn)生數(shù)據(jù)速度較慢,但隨機性好箱玷;/dev/urandom不依賴系統(tǒng)中斷怨规,數(shù)據(jù)產(chǎn)生速度快,但隨機性較低汪茧。 -
/etc
:存放重要的設置椅亚,配置文件目錄。相當于windows注冊表的地位舱污,管理linux主要就是管理/etc呀舔。例如之前設置過的/etc/profile.d/env.sh 用來控制命令行的格式顏色。 -
/home
:家目錄,存放用戶的數(shù)據(jù)媚赖,普通用戶登錄就在家目錄霜瘪。/home/USERNAME普通用戶家目錄。 -
/root
:管理員的家目錄惧磺。 -
/run
:運行中生成的相關數(shù)據(jù)(CentOS6在/var/run
)颖对。 -
/bin
:CentOS7為軟鏈接,指向/usr/bin
磨隘。普通用戶可執(zhí)行的二進制數(shù)據(jù)缤底,binary 二進制的意思所有用戶使用的基本命令;不能關聯(lián)至獨立分區(qū)番捂,OS啟動即會用到的程序个唧。 -
/sbin
:CentOS7為軟鏈接,指向/usr/sbin
设预。管理員root可執(zhí)行的二進制數(shù)據(jù)徙歼。管理類的基本命令;不能關聯(lián)至獨立分區(qū)鳖枕,OS啟動即會用到的程序酿秸。 -
/lib
:CentOS7為軟鏈接则奥,指向/usr/lib
唱矛。啟動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)。 -
/lib64
:CentOS7為軟鏈接,指向/usr/lib64
。專用于x86_64系統(tǒng)上的輔助共享庫文件存放位置熄驼。 -
/tmp
:臨時數(shù)據(jù)。臨時文件存儲位置实束。 -
/usr
:操作系統(tǒng)大部分數(shù)據(jù)放在這。universal shared, read-only data。
/usr/bin
:普通用戶可執(zhí)行的二進制數(shù)據(jù),binary 二進制的意思碍庵。所有用戶使用的基本命令堰氓;不能關聯(lián)至獨立分區(qū)掷邦,OS啟動即會用到的程序宣蔚。
/usr/sbin
:管理員root可執(zhí)行的二進制數(shù)據(jù)亩冬。管理類的基本命令营袜;不能關聯(lián)至獨立分區(qū)撒顿,OS啟動即會用到的程序。
/usr/lib
:32位使用荚板。CentOS7根目錄下/lib
為軟鏈接凤壁。
/usr/lib64
:只存在64位系統(tǒng)。CentOS7根目錄下/lib64
為軟鏈接跪另。
/usr/include
: C程序的頭文件(header files)拧抖。
/usr/share
:結構化獨立的數(shù)據(jù),例如doc, man等免绿。
/usr/local
:第三方應用程序的安裝位置徙鱼。包含bin, sbin, lib, lib64, etc, share, games, src。 -
/var
:的是可變的內容针姿,例如變量、日志/var/log厌衙、將來網(wǎng)站的HTML頁面也放在var下距淫。variable data files。
/var/cache
: 應用程序緩存數(shù)據(jù)目錄婶希。
/var/lib
: 應用程序狀態(tài)信息數(shù)據(jù)榕暇。
/var/local
:專用于為/usr/local下的應用程序存儲可變數(shù)據(jù)。
/var/lock
: 鎖文件。
/var/log
: 日志目錄及文件彤枢。
/var/opt
: 專用于為/opt下的應用程序存儲可變數(shù)據(jù)狰晚。
/var/run
: 運行中的進程相關數(shù)據(jù),通常用于存儲進程pid文件。
/var/spool
: 應用程序數(shù)據(jù)池缴啡。
/var/tmp
: 保存系統(tǒng)兩次重啟之間產(chǎn)生的臨時數(shù)據(jù)壁晒。 -
/proc
:內存中的相關信息,此目錄不在硬盤上业栅,process進程數(shù)據(jù)在硬盤上秒咐。用于輸出內核與進程信息相關的虛擬文件系統(tǒng)。 -
/sys
:系統(tǒng)和硬件相關的內容碘裕。用于輸出當前系統(tǒng)上硬件設備相關信息虛擬文件系統(tǒng)携取。 -
/media
:便攜式移動設備掛載點。 -
/mnt
:臨時文件系統(tǒng)掛載點帮孔。 -
/opt
:第三方應用程序的安裝位置雷滋。 -
/srv
:系統(tǒng)上運行的服務用到的數(shù)據(jù) -
selinux
:CentOS6中。security enhanced Linux文兢,selinux相關的安全策略等信息的存儲位置晤斩。
命名規(guī)則
- 文件名最長255個字節(jié)。
- 包括路徑在內文件名稱最長4095個字節(jié)禽作。
- 藍色-->目錄
綠色-->可執(zhí)行文件
紅色-->壓縮文件
淺藍色-->鏈接文件
灰色-->其他文件 - 除了
/
和NUL
,所有字符都有效.但使用特殊字符的目錄名和文件不推薦使用尸昧,有些字符需要用引號來引用它們。 - 標準Linux文件系統(tǒng)(如ext4)旷偿,文件名稱大小寫敏感烹俗。例如:MAIL,Mail,mail, mAiL。準確的說是特定文件系統(tǒng)大小寫敏感萍程,fat格式就不區(qū)分大小寫幢妄。
2、顯示/etc目錄下茫负,所有以.d結尾的文件或目錄
命令
ls -ad /etc/*.d
驗證
/etc/bash_completion.d /etc/logrotate.d /etc/rc6.d
/etc/binfmt.d /etc/modprobe.d /etc/rc.d
/etc/chkconfig.d /etc/modules-load.d /etc/request-key.d
/etc/cron.d /etc/my.cnf.d /etc/rsyslog.d
/etc/depmod.d /etc/oddjobd.conf.d /etc/rwtab.d
/etc/dnsmasq.d /etc/pam.d /etc/sane.d
/etc/dracut.conf.d /etc/popt.d /etc/setuptool.d
/etc/exports.d /etc/prelink.conf.d /etc/statetab.d
/etc/gdbinit.d /etc/profile.d /etc/sudoers.d
/etc/grub.d /etc/rc0.d /etc/sysctl.d
/etc/init.d /etc/rc1.d /etc/tmpfiles.d
/etc/ipsec.d /etc/rc2.d /etc/xinetd.d
/etc/krb5.conf.d /etc/rc3.d /etc/yum.repos.d
/etc/ld.so.conf.d /etc/rc4.d
/etc/libibverbs.d /etc/rc5.d
3蕉鸳、顯示/etc目錄下,所有.conf結尾忍法,且以m,n,r,p開頭的文件或目錄
命令
ls -ad /etc/[mnrp]*.conf
驗證
/etc/man_db.conf /etc/nfsmount.conf /etc/pnm2ppa.conf /etc/rsyncd.conf
/etc/mke2fs.conf /etc/nsswitch.conf /etc/radvd.conf /etc/rsyslog.conf
/etc/mtools.conf /etc/numad.conf /etc/request-key.conf
/etc/nfs.conf /etc/pbm2ppa.conf /etc/resolv.conf
4潮尝、創(chuàng)建/app/rootdir目錄,并復制/root下所有文件到該目錄內饿序, 要求保留原有權限
命令
cp -rp /root/ /app/rootdir
驗證
[root@centos7 ~]#ll -a /root/
total 1260
dr-xr-x---. 14 root root 4096 May 18 17:29 .
dr-xr-xr-x. 19 root root 248 May 13 20:10 ..
-rw-r--r--. 1 root root 11 May 18 17:28 acl.txt
-rw-------. 1 root root 1896 May 6 19:08 anaconda-ks.cfg
-rw-------. 1 root root 1010151 May 18 01:18 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 225 May 7 19:51 .bashrc
drwx------. 14 root root 4096 May 8 11:53 .cache
drwx------. 14 root root 261 May 7 12:33 .config
-rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
drwx------. 3 root root 25 May 6 19:21 .dbus
drwxr-xr-x. 2 root root 6 May 7 12:29 Desktop
drwxr-xr-x. 2 root root 6 May 7 12:29 Documents
drwxr-xr-x. 2 root root 6 May 7 12:29 Downloads
-rw-------. 1 root root 16 May 7 12:29 .esd_auth
-rw-rwxr--+ 1 root root 8 May 18 17:27 f1
-rw-------. 1 root root 18 May 7 15:26 .history
-rw-------. 1 root root 5274 May 18 11:21 .ICEauthority
-rw-r--r--. 1 root root 1927 May 6 19:22 initial-setup-ks.cfg
-rw-------. 1 root root 35 May 8 15:49 .lesshst
drwx------. 3 root root 19 May 7 12:29 .local
-rw-r--r--. 1 root root 102910 May 14 21:44 man.help
-rw-r--r--. 1 root root 101286 May 14 21:45 man.help2
drwxr-xr-x. 2 root root 6 May 7 12:29 Music
drwxr-xr-x. 2 root root 6 May 7 12:29 Pictures
drwxr-xr-x. 2 root root 6 May 7 12:29 Public
-rw-r--r--. 1 root root 7 May 18 17:39 rmacl.txt
-rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
drwxr-xr-x. 2 root root 6 May 7 12:29 Templates
drwxr-xr-x. 2 root root 6 May 7 12:29 Videos
-rw-------. 1 root root 0 May 7 12:34 .Xauthority
[root@centos7 ~]#ll -a /app/rootdir/
total 1264
dr-xr-x---. 15 root root 4096 May 18 22:56 .
drwxr-xr-x. 4 root root 36 May 18 22:55 ..
-rw-r--r--. 1 root root 11 May 18 17:28 acl.txt
-rw-------. 1 root root 1896 May 6 19:08 anaconda-ks.cfg
-rw-------. 1 root root 1010151 May 18 01:18 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 225 May 7 19:51 .bashrc
drwx------. 14 root root 4096 May 8 11:53 .cache
drwx------. 14 root root 261 May 7 12:33 .config
-rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc
drwx------. 3 root root 25 May 6 19:21 .dbus
drwxr-xr-x. 2 root root 6 May 7 12:29 Desktop
drwxr-xr-x. 2 root root 6 May 7 12:29 Documents
drwxr-xr-x. 2 root root 6 May 7 12:29 Downloads
-rw-------. 1 root root 16 May 7 12:29 .esd_auth
-rw-rwxr--+ 1 root root 8 May 18 17:27 f1
-rw-------. 1 root root 18 May 7 15:26 .history
-rw-------. 1 root root 5274 May 18 11:21 .ICEauthority
-rw-r--r--. 1 root root 1927 May 6 19:22 initial-setup-ks.cfg
-rw-------. 1 root root 35 May 8 15:49 .lesshst
drwx------. 3 root root 19 May 7 12:29 .local
-rw-r--r--. 1 root root 102910 May 14 21:44 man.help
-rw-r--r--. 1 root root 101286 May 14 21:45 man.help2
drwxr-xr-x. 2 root root 6 May 7 12:29 Music
drwxr-xr-x. 2 root root 6 May 7 12:29 Pictures
drwxr-xr-x. 2 root root 6 May 7 12:29 Public
-rw-r--r--. 1 root root 7 May 18 17:39 rmacl.txt
dr-xr-x---. 14 root root 4096 May 18 17:29 root
-rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc
drwxr-xr-x. 2 root root 6 May 7 12:29 Templates
drwxr-xr-x. 2 root root 6 May 7 12:29 Videos
-rw-------. 1 root root 0 May 7 12:34 .Xauthority
5勉失、使用命令行展開功能,創(chuàng)建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b原探,在/tmp目錄下創(chuàng)建目錄:x_y, x_z, q_y, q_z
命令
mkdir -p tmp/{a1/{a,b},a2,{x_,q_}{y,z}}
驗證
[root@centos7 data]#tree tmp
tmp
├── a1
│ ├── a
│ └── b
├── a2
├── q_y
├── q_z
├── x_y
└── x_z
8 directories, 0 files
6乱凿、總結用戶顽素、用戶組管理命令并演示命令以及常見用法
- 查看用戶相關的ID信息
id [OPTION]... [USER]
-u: 顯示UID
-g: 顯示GID
-G: 顯示用戶所屬的組的ID
-n: 顯示名稱,需配合ugG使用
[root@centos7 data]#id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@centos7 data]#id jack
uid=1001(jack) gid=1001(jack) groups=1001(jack)
- 管理員:root, 0
普通用戶:1-60000 自動分配
系統(tǒng)用戶:1-499, 1-999(CentOS7)對守護進程獲取資源進行權限分配
登錄用戶:500+, 1000+(CentOS7)交互式登錄 - Linux用戶和組的主要配置文件
/etc/passwd:用戶及其屬性信息(名稱徒蟆、UID胁出、主組ID等)
passwd文件格式,用vipw編輯段审,pwck檢查格式是否正確
login name:登錄用名(wang)
passwd:密碼(x)
UID:用戶身份編號(1000)
GID:登錄默認所在組編號(1000)
GECOS:用戶全名或注釋
home directory:用戶主目錄(/home/wang)
shell:用戶默認使用shell (/bin/bash)
/etc/group:組及其屬性信息
group文件格式全蝶,用vigr編輯,grpck檢查格式是否正確
群組名稱:就是群組名稱
群組密碼:通常不需要設定戚哎,密碼是被記錄在/etc/gshadow
GID:就是群組的ID
以當前組為附加組的用戶列表(分隔符為逗號)
/etc/shadow:用戶密碼及其相關屬性
shadow文件格式
登錄用名
用戶密碼:一般用sha512加密
從1970年1月1日起到密碼最近一次被更改的時間
密碼再過幾天可以被變更(0表示隨時可被變更)
密碼再過幾天必須被變更(99999表示永不過期)
密碼過期前幾天系統(tǒng)提醒用戶(默認為一周)
密碼過期幾天后帳號會被鎖定
從1970年1月1日算起裸诽,多少天后帳號失效
/etc/gshadow:組密碼及其相關屬性
gshdow文件格式
群組名稱:就是群組名稱
群組密碼:
組管理員列表:組管理員的列表,更改組密碼和成員
以當前組為附加組的用戶列表:(分隔符為逗號)
- 用戶管理命令
useradd 用戶創(chuàng)建
useradd [options] LOGIN
-u UID
-o 配合-u 選項型凳,不檢查UID的唯一性
-g GID:指明用戶所屬基本組丈冬,可為組名,也可以GID
-c "COMMENT":用戶的注釋信息
-d HOME_DIR: 以指定的路徑(不存在)為家目錄
-s SHELL: 指明用戶的默認shell程序甘畅,可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]:為用戶指明附加組埂蕊,組須事先存在
-N 不創(chuàng)建私用組做主組,使用users組做主組
-r 創(chuàng)建系統(tǒng)用戶CentOS 6: ID<500疏唾,CentOS 7: ID<1000
-m 創(chuàng)建家目錄蓄氧,用于系統(tǒng)用戶
-M 不創(chuàng)建家目錄,用于非系統(tǒng)用戶
useradd 默認值查看與修改
默認值設定:/etc/default/useradd
文件中
顯示或更改默認設置
useradd -D
查看默認設置
[root@centos7 data]#useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
useradd -D -s SHELL
設置新用戶默認SHELL
useradd -D -b BASE_DIR
設置新用戶默認家目錄位置
useradd -D -g GROUP
設置新用戶默認組名
新建用戶的相關文件和命令
/etc/default/useradd
新用戶默認值
/etc/skel/*
新用戶家目錄默認文件從哪拷貝
/etc/login.defs
新用戶的密碼加密算法槐脏、密碼最長有效期喉童、密碼最短使用幾天可改、密碼最短的長度顿天、密碼快過期提前幾天提醒堂氯。各類ID號的區(qū)段,是否創(chuàng)建家目錄牌废,有關權限的UMASK值設置咽白,同名用戶組的自動創(chuàng)建與自動刪除。
[root@centos7 data]#cat /etc/login.defs
#
# Please note that the parameters in this configuration file control the
# behavior of the tools from the shadow-utils component. None of these
# tools uses the PAM mechanism, and the utilities that use PAM (such as the
# passwd command) should therefore be configured elsewhere. Refer to
# /etc/pam.d/system-auth for more information.
#
# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#MAIL_FILE .mail
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 1000
UID_MAX 60000
# System accounts
SYS_UID_MIN 201
SYS_UID_MAX 999
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 1000
GID_MAX 60000
# System accounts
SYS_GID_MIN 201
SYS_GID_MAX 999
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD /usr/sbin/userdel_local
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME yes
# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK 077
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes
# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512
newusers passwd格式文件
批量新建用戶
chpasswd
批量設置用戶密碼鸟缕,格式user_name:password
- usermod 用戶屬性修改
usermod [OPTION] login
-u UID: 新UID
-g GID: 新主組
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組晶框,原來的附加組將會被覆蓋;若保留原有懂从,則要同時使用-a選項
-s SHELL:新的默認SHELL
-c 'COMMENT':新的注釋信息
-d HOME: 新家目錄不會自動創(chuàng)建授段;若要創(chuàng)建新家目錄并移動原家數(shù)據(jù),同時使用-m選項
-l login_name: 新的名字
-L lock指定用戶,在/etc/shadow 密碼欄的增加!
-U unlock指定用戶,將/etc/shadow 密碼欄的! 拿掉
-e YYYY-MM-DD: 指明用戶賬號過期日期
-f INACTIVE: 設定非活動期限
- userdel 刪除用戶
userdel [OPTION] login
-r: 刪除用戶家目錄
- su 切換用戶或以其他用戶身份執(zhí)行命令
root su至其他用戶無須密碼番甩;非root用戶切換時需要密碼畴蒲。
su [options...] [-] [user [args...]]
su UserName :非登錄式切換,即不會讀取目標用戶的配置文件对室,不改變當前工作目錄
su - UserName :登錄式切換模燥,會讀取目標用戶的配置文件,切換至家目錄掩宜,完全切換
su [-] UserName -c 'COMMAND' :換個身份執(zhí)行命令
- passwd 設置密碼
passwd [OPTIONS] UserName
-d 刪除指定用戶密碼
-l 鎖定指定用戶
-u 解鎖指定用戶
-e 強制用戶下次登錄修改密碼
-f 強制操作
-n mindays :指定最短使用期限
-x maxdays :最大使用期限
-w warndays :提前多少天開始警告
-iinactivedays :非活動期限
--stdin :從標準輸入接收用戶密碼
echo "PASSWORD" | passwd --stdin USERNAME
- chage 修改用戶密碼期限策略
chage [OPTION] LOGIN
-d LAST_DAY 上一次更改日期
-E --expiredate EXPIRE_DATE 帳號到期的日期蔫骂。過了這天,此帳號將不可用
-I --inactive INACTIVE 密碼過期幾天后帳號會被鎖定
-m --mindaysMIN_DAYS 密碼再過幾天可以被變更(0表示隨時可被變更)
-M --maxdaysMAX_DAYS 密碼再過幾天必須被變更(99999表示永不過期)
-W --warndaysWARN_DAYS 密碼過期前幾天系統(tǒng)提醒用戶(默認為一周)
-l 列出用戶的詳細密碼狀態(tài)
示例
chage -d 0 tom 下一次登錄強制重設密碼
chage -m 0 -M 42 -W 14 -I 7 tom
chage -E 2016-09-10 tom
- 用戶相關的其它命令
chfn
指定個人信息
chfn [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone]
-u] [-v] [username]
chsh
指定shell
chsh [-s shell] [username]
finger
系統(tǒng)管理員通過使用該命令可以知道某個時候到底有多少用戶在使用這臺Linux主機牺汤。
- 組帳號維護命令
groupadd 創(chuàng)建組
groupadd [options] GROUP
-g GID: 指明GID號
-r 創(chuàng)建系統(tǒng)組辽旋,CentOS6: ID<500,CentOS7: ID<1000
- groupmod 組屬性修改
groupmod [options] GROUP
-n group_name : 新名字
-g GID : 新的GID
- groupdel 組刪除
groupdel [options] GROUP
- gpasswd 管理組的密碼與其他
gpasswd [option] group
-a user 將user添加至指定組中
-d user 從指定組中移除用戶user
-A user1,user2,... 設置有管理權限的用戶列表
- newgrp 臨時切換主組
如果用戶本不屬于此組檐迟,則需要組密碼补胚。 - groupmems 更改和查看組成員
groupmems [options] [action]
options:
-g, --group groupname 更改為指定組(只有root)
Actions:
-a, --add username 指定用戶加入組
-d, --delete username 從組中刪除用戶
-p, --purge 從組中清除所有成員
-l, --list 顯示組成員列表
- groups 查看用戶所屬組列表
groups [OPTION]... [USERNAME]...
7、文件權限追迟,屬主屬組管理命令有哪些溶其,并演示命令以及用法
.
代表selinux敦间,末尾有 +
代表acl瓶逃。
- chown 、 chgrp 設置文件的屬主與屬組
-h : 只對于連結(link)進行變更廓块,而非該 link 真正指向的檔案
chown [OPTION]... [OWNER][:[GROUP]] FILE...
例如:
chown root /u 修改/u的屬主為root
chown root:staff /u 同時修改/u的屬主為root厢绝,屬組為staff
chown :staff /u 修改/u的屬組為staff
chown root: /u 同時修改/u的屬主與屬組為root
以上命令中的冒號可用.替換
chown [OPTION]... --reference=RFILE FILE...
-R 遞歸 目錄下的所有文件與目錄屬性都修改
chgrp [OPTION]... GROUP FILE...
chgrp staff /u 修改/u的屬組為staff
chgrp [OPTION]... --reference=RFILE FILE...
-R 遞歸 目錄下的所有文件與目錄屬性都修改
災難性操作chown -R 所有者 / 將根下所有文件與目錄所有者更改。
- 文件權限
文件的權限主要針對三類對象進行定義
owner: 屬主, u带猴,4
group: 屬組, g昔汉,2
other: 其他, o,1
每個文件針對每類訪問者都定義了三種權限
r: Readable 讀
文件:可使用文件查看類工具獲取其內容
目錄:可以使用ls查看此目錄中文件列表
w: Writable 寫
文件:可修改其內容
目錄:可在此目錄中創(chuàng)建文件拴清,也可刪除此目錄中的文件靶病,需配合x
x: eXcutable 執(zhí)行
文件:可以把此文件提請內核啟動為一個進程
目錄:可以使用ls -l查看此目錄中文件元數(shù)據(jù)(須配合r),可以cd進入此目錄
(目錄X: 只給目錄x權限贷掖,不給文件x權限)
-
chmod 文件權限操作
文件權限(rwx|X)
例如:
640: rw-r-----
755: rwxr-xr-x
chmod [OPTION]... MODE[,MODE]... FILE...
-R: 遞歸修改權限
例如 chmod -R g+rwX /testdir
MODE:
修改一類用戶的所有權限:
u= g= o= ug= a= u=,g=
修改一類用戶某位或某些位權限
u+ u- g+ g- o+ o- a+ a- + - (不寫默認給ugo都加減)
例如 chmod u+wx,g-r,o=rx file
chmod [OPTION]... OCTAL-MODE FILE...
例如 chmod 640 file (640等同于設置為rw-r-----)
chmod [OPTION]... --reference=RFILE FILE...
參考RFILE文件的權限歧譬,將FILE的修改為同RFILE
實驗
刪除家目錄瑟捣,恢復
還原勿刪的某用戶家目錄
cp -r /etc/skel /home/jack
chown -R jack.jack /home/jack
chmod 700 /home/jack
- umask 新建文件和目錄的默認權限
新建FILE權限: 666-umask,如果所得結果某位存在執(zhí)行(奇數(shù))權限,則將其權限+1家妆。
新建DIR權限: 777-umask。
非特權用戶umask是002狠裹。root的umask是022病蛉。
要想存住umask全局設置:/etc/bashrc,用戶設置:~/.bashrc
umask 查看umask值
umask 002 臨時設置umask值為002窟哺,僅對本次登陸有效
umask -S 模式方式顯示泻轰,顯示為u=rwx,g=rx,o=rx這種形式
umask -p 輸出可被調用,顯示為umask 0022這種形式
- Linux文件系統(tǒng)上的特殊權限
SUID(umask從右往左第四位4)
可執(zhí)行文件上SUID權限
任何一個可執(zhí)行程序文件能不能啟動為進程:取決發(fā)起者對程序文件是否擁有執(zhí)行權限
啟動為進程之后且轨,其進程的屬主為原程序文件的屬主
SUID只對二進制可執(zhí)行程序有效
SUID設置在目錄上無意義
權限設定:
chmod u+s FILE...
chmod u-s FILE...
SUID: user,占據(jù)屬主的執(zhí)行權限位
s:屬主擁有x權限
S:屬主沒有x權限
SGID(umask從右往左第四位2)
可執(zhí)行文件上SGID權限
任何一個可執(zhí)行程序文件能不能啟動為進程:取決發(fā)起者對程序文件是否擁有執(zhí)行權限
啟動為進程之后浮声,其進程的屬組為原程序文件的屬組
權限設定:
chmod g+s FILE...
chmod g-s FILE...
目錄上的SGID權限
默認情況下虚婿,用戶創(chuàng)建文件時,其屬組為此用戶所屬的主組
一旦某目錄被設定了SGID泳挥,則對此目錄有寫權限的用戶在此目錄中創(chuàng)建的文件所屬的組為此目錄的屬組
通常用于創(chuàng)建一個協(xié)作目錄
權限設定:
chmod g+s DIR...
chmod g-s DIR...
SGID: group,占據(jù)屬組的執(zhí)行權限位
s:group擁有x權限
S:group沒有x權限
Sticky(umask從右往左第四位1)
Sticky 位
具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件然痊,無論該文件的權限或擁有權
在目錄設置Sticky 位,只有文件的所有者或root可以刪除該文件
sticky 設置在文件上無意義
權限設定:
chmod o+t DIR...
chmod o-t DIR...
例如:
ls -ld /tmp drwxrwxrwt 12 root root 4096 Nov 2 15:44 /tmp
Sticky: other,占據(jù)other的執(zhí)行權限位
t:other擁有x權限
T:other沒有x權限
三種常用權限:r, w, x user, group, other
安全上下文
前提:進程有屬主和屬組屉符;文件有屬主和屬組
(1) 任何一個可執(zhí)行程序文件能不能啟動為進程,取決發(fā)起者對程序文件是否擁有執(zhí)行權限
(2) 啟動為進程之后剧浸,其進程的屬主為發(fā)起者,進程的屬組為發(fā)起者所屬的組
(3) 進程訪問文件時的權限,取決于進程的發(fā)起者
(a) 進程的發(fā)起者矗钟,同文件的屬主:則應用文件屬主權限
(b) 進程的發(fā)起者唆香,屬于文件屬組;則應用文件屬組權限
(c) 應用文件“其它”權限
設定文件特定屬性
chattr +i 文件名
:不能刪除吨艇,改名躬它,更改
chattr +a 文件名
:只能追加內容
lsattr
:顯示特定屬性。
- 訪問控制列表
ACL:Access Control List秸应,實現(xiàn)靈活的權限管理
除了文件的所有者虑凛,所屬組和其它人,可以對更多的用戶設置權限
CentOS7默認創(chuàng)建的xfs和ext4文件系統(tǒng)具有ACL功能
CentOS7之前版本软啼,默認手工創(chuàng)建的ext4文件系統(tǒng)無ACL功能,需手動增加
tune2fs –o acl/dev/sdb1
mount –o acl/dev/sdb1 /mnt/test
ACL生效順序:所有者桑谍,自定義用戶,自定義組祸挪,其他人
為多用戶或者組的文件和目錄賦予訪問權限r(nóng)wx
mount -o acl/directory
getfacl file |directory
setfacl -m u:wang:rwx file|directory
setfacl -Rm g:sales:rwX directory
setfacl -M file.acl file|directory
setfacl -m g:salesgroup:rw file| directory
setfacl -m d:u:wang:rx directory
setfacl -x u:wang file |directory
setfacl -X file.acl directory
ACL文件上的group權限是mask 值(自定義用戶锣披,自定義組,擁有組的最大權限),而非傳統(tǒng)的組權限
getfacl可看到特殊權限:flags
通過ACL賦予目錄默認x權限贿条,目錄內文件也不會繼承x權限
base ACL 不能刪除
setfacl -k dir 刪除默認ACL權限
setfacl -b file1清除所有ACL權限
getfacl file1 | setfacl --set-file=- file2 復制file1的acl權限給file2
mask只影響除所有者和other的之外的人和組的最大權限
Mask需要與用戶的權限進行邏輯與運算后雹仿,才能變成有限的權限(Effective Permission)
用戶或組的設置必須存在于mask權限設定范圍內才會生效setfacl -m mask::rx file
--set選項會把原有的ACL項都刪除,用新的替代整以,需要注意的是一定要包含UGO的設置胧辽,不能象-m一樣只是添加ACL就可以
示例:
setfacl --set u::rw,u:wang:rw,g::r,o::- file1
備份和恢復ACL
主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 參數(shù)公黑。但是tar等常見的備份工具是不會保留目錄和文件的ACL信息
getfacl -R /tmp/dir1 > acl.txt
setfacl -R -b /tmp/dir1
setfacl -R --set-file=acl.txt /tmp/dir1
setfacl --restore acl.txt
getfacl -R /tmp/dir1
8邑商、創(chuàng)建用戶gentoo,附加組為bin和root凡蚜,默認shell為/bin/csh人断,注釋信息為 "Gentoo Distribution"
命令
useradd -G bin,root -s /bin/csh -c 'Gentoo Distribution' gentoo
驗證
[root@centos7 ~]#id gentoo
uid=1002(gentoo) gid=1003(gentoo) groups=1003(gentoo),0(root),1(bin)
[root@centos7 ~]#getent passwd gentoo
gentoo:x:1002:1003:Gentoo Distribution:/home/gentoo:/bin/csh