Linux文件管理教沾、權限管理

1. 描述Linux目錄結構以及目錄結構命名規(guī)定

Linux目錄結構

Linux目錄結構
  1. / :根目錄
  2. /boot :與啟動相關含有重要的內核。引導文件存放目錄满着,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放于此目錄贯莺。
  3. /dev :硬件风喇。設備文件及特殊文件存儲位置。
    b: block device缕探,隨機訪問
    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)生速度快,但隨機性較低汪茧。
  4. /etc :存放重要的設置椅亚,配置文件目錄。相當于windows注冊表的地位舱污,管理linux主要就是管理/etc呀舔。例如之前設置過的/etc/profile.d/env.sh 用來控制命令行的格式顏色。
  5. /home :家目錄,存放用戶的數(shù)據(jù)媚赖,普通用戶登錄就在家目錄霜瘪。/home/USERNAME普通用戶家目錄。
  6. /root :管理員的家目錄惧磺。
  7. /run :運行中生成的相關數(shù)據(jù)(CentOS6在/var/run)颖对。
  8. /bin :CentOS7為軟鏈接,指向/usr/bin磨隘。普通用戶可執(zhí)行的二進制數(shù)據(jù)缤底,binary 二進制的意思所有用戶使用的基本命令;不能關聯(lián)至獨立分區(qū)番捂,OS啟動即會用到的程序个唧。
  9. /sbin :CentOS7為軟鏈接,指向/usr/sbin设预。管理員root可執(zhí)行的二進制數(shù)據(jù)徙歼。管理類的基本命令;不能關聯(lián)至獨立分區(qū)鳖枕,OS啟動即會用到的程序酿秸。
  10. /lib :CentOS7為軟鏈接则奥,指向/usr/lib唱矛。啟動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)。
  11. /lib64 :CentOS7為軟鏈接,指向/usr/lib64。專用于x86_64系統(tǒng)上的輔助共享庫文件存放位置熄驼。
  12. /tmp :臨時數(shù)據(jù)。臨時文件存儲位置实束。
  13. /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。
  14. /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ù)壁晒。
  15. /proc :內存中的相關信息,此目錄不在硬盤上业栅,process進程數(shù)據(jù)在硬盤上秒咐。用于輸出內核與進程信息相關的虛擬文件系統(tǒng)。
  16. /sys :系統(tǒng)和硬件相關的內容碘裕。用于輸出當前系統(tǒng)上硬件設備相關信息虛擬文件系統(tǒng)携取。
  17. /media :便攜式移動設備掛載點。
  18. /mnt :臨時文件系統(tǒng)掛載點帮孔。
  19. /opt :第三方應用程序的安裝位置雷滋。
  20. /srv :系統(tǒng)上運行的服務用到的數(shù)據(jù)
  21. selinux :CentOS6中。security enhanced Linux文兢,selinux相關的安全策略等信息的存儲位置晤斩。

命名規(guī)則

  1. 文件名最長255個字節(jié)。
  2. 包括路徑在內文件名稱最長4095個字節(jié)禽作。
  3. 藍色-->目錄
    綠色-->可執(zhí)行文件
    紅色-->壓縮文件
    淺藍色-->鏈接文件
    灰色-->其他文件
  4. 除了/NUL,所有字符都有效.但使用特殊字符的目錄名和文件不推薦使用尸昧,有些字符需要用引號來引用它們。
  5. 標準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乱凿、總結用戶顽素、用戶組管理命令并演示命令以及常見用法

  1. 查看用戶相關的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)
  1. 管理員:root, 0
    普通用戶:1-60000 自動分配
    系統(tǒng)用戶:1-499, 1-999(CentOS7)對守護進程獲取資源進行權限分配
    登錄用戶:500+, 1000+(CentOS7)交互式登錄
  2. 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文件格式
群組名稱:就是群組名稱
群組密碼:
組管理員列表:組管理員的列表,更改組密碼和成員
以當前組為附加組的用戶列表:(分隔符為逗號)
  1. 用戶管理命令
    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

  1. 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: 設定非活動期限
  1. userdel 刪除用戶
userdel [OPTION] login
-r: 刪除用戶家目錄
  1. su 切換用戶或以其他用戶身份執(zhí)行命令
    root su至其他用戶無須密碼番甩;非root用戶切換時需要密碼畴蒲。
su [options...] [-] [user [args...]]
su UserName :非登錄式切換,即不會讀取目標用戶的配置文件对室,不改變當前工作目錄
su - UserName :登錄式切換模燥,會讀取目標用戶的配置文件,切換至家目錄掩宜,完全切換
su [-] UserName -c 'COMMAND' :換個身份執(zhí)行命令
  1. passwd 設置密碼
passwd [OPTIONS] UserName
-d 刪除指定用戶密碼
-l 鎖定指定用戶
-u 解鎖指定用戶
-e 強制用戶下次登錄修改密碼
-f 強制操作
-n mindays :指定最短使用期限
-x maxdays :最大使用期限
-w warndays :提前多少天開始警告
-iinactivedays :非活動期限
--stdin :從標準輸入接收用戶密碼
echo "PASSWORD" | passwd --stdin USERNAME
  1. 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
  1. 用戶相關的其它命令
    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主機牺汤。

  1. 組帳號維護命令
    groupadd 創(chuàng)建組
groupadd [options] GROUP
-g GID: 指明GID號
-r 創(chuàng)建系統(tǒng)組辽旋,CentOS6: ID<500,CentOS7: ID<1000
  1. groupmod 組屬性修改
groupmod [options] GROUP
-n group_name : 新名字
-g GID : 新的GID
  1. groupdel 組刪除
groupdel [options] GROUP
  1. gpasswd 管理組的密碼與其他
gpasswd [option] group
-a user 將user添加至指定組中
-d user 從指定組中移除用戶user
-A user1,user2,... 設置有管理權限的用戶列表
  1. newgrp 臨時切換主組
    如果用戶本不屬于此組檐迟,則需要組密碼补胚。
  2. groupmems 更改和查看組成員
groupmems [options] [action]
options:
-g, --group groupname 更改為指定組(只有root)
Actions:
-a, --add username 指定用戶加入組
-d, --delete username 從組中刪除用戶
-p, --purge 從組中清除所有成員
-l, --list 顯示組成員列表
  1. groups 查看用戶所屬組列表
groups [OPTION]... [USERNAME]...

7、文件權限追迟,屬主屬組管理命令有哪些溶其,并演示命令以及用法

權限第一個字符表示文件類型,權限末尾有 . 代表selinux敦间,末尾有 + 代表acl瓶逃。

  1. 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 所有者 / 將根下所有文件與目錄所有者更改。

  1. 文件權限
    文件的權限主要針對三類對象進行定義

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權限)
  1. 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
  1. 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這種形式
  1. 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 :顯示特定屬性。

  1. 訪問控制列表
    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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市朝蜘,隨后出現(xiàn)的幾起案子恶迈,更是在濱河造成了極大的恐慌,老刑警劉巖谱醇,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暇仲,死亡現(xiàn)場離奇詭異步做,居然都是意外死亡,警方通過查閱死者的電腦和手機奈附,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門辆床,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桅狠,你說我怎么就攤上這事〗窝恚” “怎么了中跌?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長菇篡。 經(jīng)常有香客問我漩符,道長,這世上最難降的妖魔是什么驱还? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任嗜暴,我火速辦了婚禮,結果婚禮上议蟆,老公的妹妹穿的比我還像新娘闷沥。我一直安慰自己,他們只是感情好咐容,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布舆逃。 她就那樣靜靜地躺著,像睡著了一般戳粒。 火紅的嫁衣襯著肌膚如雪路狮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天蔚约,我揣著相機與錄音奄妨,去河邊找鬼。 笑死苹祟,一個胖子當著我的面吹牛砸抛,可吹牛的內容都是我干的。 我是一名探鬼主播苔咪,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼锰悼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了团赏?” 一聲冷哼從身側響起箕般,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舔清,沒想到半個月后丝里,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體曲初,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年杯聚,在試婚紗的時候發(fā)現(xiàn)自己被綠了臼婆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡幌绍,死狀恐怖颁褂,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情傀广,我是刑警寧澤颁独,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站伪冰,受9級特大地震影響誓酒,放射性物質發(fā)生泄漏。R本人自食惡果不足惜贮聂,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一靠柑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吓懈,春花似錦歼冰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至榕栏,卻和暖如春畔勤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扒磁。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工庆揪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妨托。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓缸榛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親兰伤。 傳聞我的和親對象是個殘疾皇子内颗,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內容

  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 5,720評論 0 10
  • 在了解到Linux系統(tǒng)上的文件目錄權限,有時候你會發(fā)現(xiàn)為什么剛創(chuàng)建的文件是-rw-r--r--這個權限,目錄是dr...
    jie0112閱讀 1,229評論 0 2
  • Linux上的文件管理類命令都有哪些找前,其常用的使用方法及其相關示例演示糟袁。 cat命令 cat是linux的基本文本...
    摩羯座的魚閱讀 981評論 0 0
  • 前言 只有光頭才能變強 回顧前面: 看完這篇Linux基本的操作就會了 沒想到上一篇能在知乎獲得千贊呀,Linux...
    Java3y閱讀 3,226評論 0 19
  • 進入大學也有半年了躺盛,轉眼間项戴,大一下學期又過去幾周了。這半年大學生活槽惫,我經(jīng)歷了很多周叮,學會了許多,成長了許多界斜。 大一上...
    蘇演閱讀 270評論 5 3