小白入門之九:linux系統(tǒng)中的用戶、組及權(quán)限管理
目的
熟練使用useradd、groupadd、chown、chmod命令來添加和刪除用戶、添加和刪除組以及設(shè)置用戶和組的權(quán)限、修改文件所屬等,passwd、su命令的使用。
useradd命令功能:添加一個新用戶或更新默認(rèn)新用戶的信息;
groupadd命令功能:創(chuàng)建一個新組;
chwon命令功能:修改文件是所有者和所屬組;
chmod命令功能:修改文件的權(quán)限位;
passwd命令功能:修改用戶的登錄密碼;
su命令功能:用替代用戶或組id運行一個命令;
setfacl命令功能:設(shè)置文件訪問控制列表。
熟悉特殊權(quán)限suid、sgid、sticky、acl的功能和用法。
前提
了解useradd命令添加用戶時使用的參數(shù),如-g設(shè)置主組,-G設(shè)置基本組,-s這種默認(rèn)shell,-M不創(chuàng)建家目錄等內(nèi)容。
熟悉rwx權(quán)限分別應(yīng)用在文件和目錄上的意義,八進(jìn)制數(shù)子表示權(quán)限。
理解什么情況下需要設(shè)置特殊權(quán)限suid、sgid、sticky、acl。
命令介紹
1、useradd命令:在系統(tǒng)中添加用戶或更新用戶信息
【例1】添加三個用戶名稱分別為:liubei、zhangfei、guanyu
[root@Magedu ~]# useradd liubei
[root@Magedu ~]# useradd zhangfei
[root@Magedu ~]# useradd guanyu
[root@Magedu ~]# id liubei
uid=1005(liubei) gid=1005(liubei) groups=1005(liubei)
【例2】在系統(tǒng)上添加一個用戶名稱為apache的用戶,默認(rèn)shell為/sbin/nolgoin且不創(chuàng)建家目錄
[root@Magedu ~]# useradd -s /sbin/nologin -M apache
2、groupadd命令:添加組
【例3】添加develop組
[root@Magedu ~]# groupadd develop
3、chown命令:修改文件所屬關(guān)系
【例4】設(shè)置/home/app/run/apache目錄及其子目錄和文件屬主屬組為apache
[root@Magedu ~]# mkdir -p /home/app/run/apache/{log,htdoc,conf}
[root@Magedu ~]# chown -R apache.apache /home/app/run/apache
[root@Magedu ~]# ll /home/app/run/apache
total 0
drwxr-xr-x 2 apache apache 6 May 31 04:07 conf
drwxr-xr-x 2 apache apache 6 May 31 04:07 htdoc
drwxr-xr-x 2 apache apache 6 May 31 04:07 log
[root@Magedu ~]# ll /home/app/run/
total 0
drwxr-xr-x 5 apache apache 42 May 31 04:07 apache
注意:chown -R apache.apache等價于chown -R apache:apache。
4、chmod命令:改變文件權(quán)限
【例5】修改權(quán)限為屬主添加寫和執(zhí)行權(quán)限、屬組沒有讀權(quán)限其它人有讀和執(zhí)行權(quán)限
[root@Magedu ~]# touch 1.sh
[root@Magedu ~]# ll 1.sh
-rw-r--r-- 1 root root 0 Jun 3 22:16 1.sh
[root@Magedu ~]# chmod u+wx,g-r,o=rx 1.sh
[root@Magedu ~]# ll 1.sh
-rwx---r-x 1 root root 0 Jun 3 22:16 1.sh
【例6】遞歸設(shè)置testdir目錄權(quán)限為:屬組添加可讀、可寫、可執(zhí)行權(quán)限,但其子文件不添加執(zhí)行權(quán)限
[root@Magedu ~]# chmod -R g=rwX testdir/
【例7】設(shè)置文件1.sh權(quán)限為只有屬主有讀寫權(quán)限
[root@Magedu ~]# ll 1.sh
-rw-r--r-- 1 root root 0 Jun 4 00:28 1.sh
[root@Magedu ~]# chmod 600 1.sh
[root@Magedu ~]# ll 1.sh
-rw------- 1 root root 0 Jun 4 00:28 1.sh
5、passwd命令:設(shè)置用戶密碼
【例8】修改用戶linux的登錄密碼
[root@Magedu ~]# passwd linux
Changing password for user linux.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
6、su命令:切換用戶
【例9】完全切換linux用戶身份
[root@Magedu ~]# su - linux
Last login: Wed May 23 07:56:53 EDT 2018 on pts/1
[linux@Magedu ~]$ id
uid=1004(linux) gid=1004(linux) groups=1004(linux)
【例10】不完全切換到linux用戶身份
[root@Magedu ~]# su linux
[linux@Magedu root]$ id
uid=1004(linux) gid=1004(linux) groups=1004(linux)
7、SUID權(quán)限設(shè)置
【例11】設(shè)置二進(jìn)制可執(zhí)行程序文件chmod擁有suid權(quán)限
[linux@Magedu root]$ cp /usr/bin/chmod ./
[root@Magedu ~]# ll chmod
-rwxr-xr-x 1 root root 58584 Jun 4 02:57 chmod
[root@Magedu ~]# chmod u+s chmod
[root@Magedu ~]# ll chmod
-rwsr-xr-x 1 root root 58584 Jun 4 02:57 chmod
【例12】取消二進(jìn)制可執(zhí)行程序文件chmod擁有的suid權(quán)限
[root@Magedu ~]# chmod u-s chmod
[root@Magedu ~]# ll chmod
-rwxr-xr-x 1 root root 58584 Jun 4 02:57 chmod
8、SGID權(quán)限設(shè)置
【例13】設(shè)置二進(jìn)制可執(zhí)行程序文件chmod擁有sgid權(quán)限
[root@Magedu ~]# chmod g+s chmod
[root@Magedu ~]# ll chmod
-rwxrsr-x 1 root root 58584 Jun 4 02:57 chmod
【例14】取消二進(jìn)制可執(zhí)行程序文件chmod擁有的sgid權(quán)限
[root@Magedu ~]# chmod g-s chmod
[root@Magedu ~]# ll chmod
-rwxr-xr-x 1 root root 58584 Jun 4 02:57 chmod
【例15】對testdir目錄設(shè)置sgid權(quán)限,作為協(xié)作目錄
[root@Magedu ~]# ll -d testdir/
drwxrwxr-x 2 root root 37 May 23 04:09 testdir/
[root@Magedu ~]# chmod g+s testdir/
[root@Magedu ~]# ll -d testdir/
drwxrwsr-x 2 root root 37 May 23 04:09 testdir/
【例16】取消testdir目錄sgid權(quán)限
[root@Magedu ~]# chmod g-s testdir/
[root@Magedu ~]# ll -d testdir/
drwxrwxr-x 2 root root 37 May 23 04:09 testdir/
9、Sticky權(quán)限設(shè)置
【例17】對testdir目錄設(shè)置sticky權(quán)限,實現(xiàn)只有文件的所有者或root才能刪除該目錄下的文件
[root@Magedu ~]# ll -d testdir/
drwxrwxr-x 2 root root 37 May 23 04:09 testdir/
[root@Magedu ~]# chmod o+t testdir/
[root@Magedu ~]# ll -d testdir/
drwxrwxr-t 2 root root 37 May 23 04:09 testdir/
【例18】取消testdir目錄的sticky權(quán)限
[root@Magedu ~]# chmod o-t testdir/
[root@Magedu ~]# ll -d testdir/
drwxrwxr-x 2 root root 37 May 23 04:09 testdir/
10、acl特殊權(quán)限
【例19】在/testdir/dir里創(chuàng)建的新文件自動屬于g1組,組g2的成員如:alice能對這些新文件有讀寫權(quán)限,組g3的成員如:tom只能對新文件有讀權(quán)限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。
[root@Magedu ~]# setfacl -Rm g:g1:rwx /testdir/dir
[root@Magedu ~]# setfacl -m d:g:g1:rwx /testdir/dir/
[root@Magedu ~]# setfacl -m d:u:alice:rw- /testdir/dir
[root@Magedu ~]# setfacl -m d:u:tom:r-- /testdir/dir
[root@Magedu ~]# chmod o= /testdir/dir
【例20】備份/testdir/dir里所有文件的ACL權(quán)限到/root/acl.txt中,清除/testdir/dir中所有ACL權(quán)限,最后還原ACL權(quán)限
[root@Magedu ~]# tar -cvf dir.tar /testdir/dir
[root@Magedu ~]# getfacl -R /testdir/dir > /root/acl.txt
刪除全部acl權(quán)限:
[root@Magedu ~]# setfacl -b /testdir/dir
還原全部acl權(quán)限:
[root@Magedu ~]# tar -xvf dir.tar -C /var/tmp
[root@Magedu ~]# cp ac1.txt /var/tmp
[root@Magedu ~]# setfacl --restore /root/ac1.txt
文章來源于網(wǎng)絡(luò),侵刪!