一、概述
本文记录Ubuntu系统下通过命令操作用户账户进行管理。
Ubuntu系统版本:
Linux ubuntu 5.15.0-1034-raspi
#37-Ubuntu SMP PREEMPT Mon Jul 17 10:02:14 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
注:查看系统版本号的指令如下
uname -a
用户管理主要包括:新建用户,查看用户,权限管理,删除用户
修改Root账户默认密码:
刚装完的ubuntu系统,root账户的密码是随机生成,每次开机都会随机生成一个密码,我们客户根据自己的需要设置root账户密码,毕竟管理Ubuntu系统,大部分需要用到root权限。
zero@ubuntu:/home$ sudo passwd # 设置root账户密码
New password:
Retype new password:
passwd: password updated successfully
二、查看用户
2.1 使用Cat指令查找所有用户
cat /etc/passwd
查询结果如下:
会将所有用户列出,并显示出具体的分组信息,ID,主目录。
ubuntu@ubuntu:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:102:105::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:103:106:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
syslog:x:104:111::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:112:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:114::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:115::/nonexistent:/usr/sbin/nologin
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
pollinate:x:110:1::/var/cache/pollinate:/bin/false
landscape:x:111:118::/var/lib/landscape:/usr/sbin/nologin
fwupd-refresh:x:112:119:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
lxd:x:999:100::/var/snap/lxd/common/lxd:/bin/false
2.2 使用getent查看所有用户信息
getent passwd
ubuntu@ubuntu:~$ getent passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:102:105::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:103:106:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
syslog:x:104:111::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:112:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:114::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:115::/nonexistent:/usr/sbin/nologin
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
pollinate:x:110:1::/var/cache/pollinate:/bin/false
landscape:x:111:118::/var/lib/landscape:/usr/sbin/nologin
fwupd-refresh:x:112:119:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
lxd:x:999:100::/var/snap/lxd/common/lxd:/bin/false
2.3 使用id查找指定用户
id userid
查找指定用户的详细信息内容,如ID,分组。
ubuntu@ubuntu:~$ id root
uid=0(root) gid=0(root) groups=0(root)
2.4 使用who查找当前登录的用户
who
ubuntu@ubuntu:~$ who
ubuntu pts/0 2023-08-15 08:36 (IP地址)
ubuntu pts/1 2023-08-15 08:52 (IP地址)
2.5 使用getent group查看用户组,及群组成员
ubuntu@ubuntu:~$ getent group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,ubuntu
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:ubuntu
fax:x:21:
voice:x:22:
cdrom:x:24:ubuntu
floppy:x:25:ubuntu
tape:x:26:
sudo:x:27:ubuntu
audio:x:29:ubuntu
dip:x:30:ubuntu
www-data:x:33:
backup:x:34:# 当后面添加具体的群组名称时,可以查询该群组的所有成员列表
zero@ubuntu:~$ getent group test2
test2:x:1002:test,test4
2.6使用groups查看用户所属群组
zero@ubuntu:~$ groups # 不带参数,直接查询当前账户的权限
zero adm cdrom sudo dip plugdev lxd# 带名称,可以查询指定用户的所属群组
zero@ubuntu:~$ groups test
test : test2
zero@ubuntu:~$ groups zero
zero : zero adm cdrom sudo dip plugdev lxd
三、用户管理
3.1 创建用户
3.1.1 使用adduser创建用户
adduser可以理解为对useradd封装后的方法,可以比较编辑的添加用户。
zero@ubuntu:~$ sudo adduser test1 # 添加用户
[sudo] password for zero:# 系统会自动添加新的权限信息
Adding user `test1' ...
Adding new group `test1' (1001) ...
Adding new user `test1' (1001) with group `test1' ...
Creating home directory `/home/test1' ...
Copying files from `/etc/skel' ...# 提示设置密码 ,不过有的版本可能没有提示,需要后续再行设置
New password:
Retype new password:
passwd: password updated successfully# 以下内容提示设置用户信息,可根据需要设置
Changing the user information for test1
Enter the new value, or press ENTER for the defaultFull Name []:Room Number []:Work Phone []:Home Phone []:Other []:
Is the information correct? [Y/n] y# 查看用户信息,可以看到已经有响应的权限信息了。
zero@ubuntu:~$ id test1
uid=1001(test1) gid=1001(test1) groups=1001(test1)
3.1.2 使用useradd创建用户
useradd用户是最基础也是最灵活的创建用户的指令,默认情况下会创建一个没有家目录、没有权限组,没有shell版本的用户,需要用户根据需要自行增补。
useradd的基本参数配置
- -u :数字,指定一个特定的 UID ;
- -g :接群组名称,用于设定账户的初始群组;
- -G :可加入的群组名称。会相应修改 /etc/group 內的相关信息!
- -M :强制不建立使用者家目录!(系统账户的预设值)
- -m :强制建立使用者家目录!(一般账号的预设值)
- -c :用户的说明信息。
- -d :使用绝对路径指定用户的家目录。
- -r :建立系统账号,UID值会有限制。
- -s :指定shell ,默认是 /bin/bash。
- -e :使用格式为“YYYY-MM-DD”的日期设置账号失效日期。
- -f :指定账号的失效天数,0为立刻失效, -1 为永不失效。
- -D:查看useradd参数的默认值
示例1,使用默认参数创建用户:
# 使用默认参数创建
zero@ubuntu:~$ sudo useradd test2
[sudo] password for zero:# 查询用户
zero@ubuntu:/home$ id test2
uid=1002(test2) gid=1002(test2) groups=1002(test2)# 查看用户信息,有创建用户家目录
zero@ubuntu:/home$ grep test2 /etc/passwd
/etc/passwd:test2:x:1002:1002::/home/test2:/bin/sh
示例2,创建用户时指定默认群组,系统再创建群组:
# 指定uid和群组名称
zero@ubuntu:/home$ useradd -u 1003 -g zero test3
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
zero@ubuntu:/home$ sudo useradd -u 1003 -g zero test3# 查看用户信息,初始群组就是设置的群组
zero@ubuntu:/home$ id test3
uid=1003(test3) gid=1000(zero) groups=1000(zero)
zero@ubuntu:/home$ grep test3 /etc/passwd
test3:x:1003:1000::/home/test3:/bin/sh
示例3,创建系统账户:
zero@ubuntu:/home$ useradd -r test4 # -r 代表系统账户
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
zero@ubuntu:/home$ sudo useradd -r test4
[sudo] password for zero:
zero@ubuntu:/home$ id test4
uid=998(test4) gid=998(test4) groups=998(test4)
zero@ubuntu:/home$ grep test4 /etc/passwd
test4:x:998:998::/home/test4:/bin/sh# 系统账户会修改gshadow文件。
zero@ubuntu:/home$ grep test4 /etc/gshadow
grep: /etc/gshadow: Permission denied
zero@ubuntu:/home$ sudo grep test4 /etc/gshadow
test4:!::
3.2 使用passwd修改用户密码
passwd的参数信息:
- --stdin :可以透過來自前一個管線的資料,作為密碼輸入,對 shell script 有幫助!
- -l :是 Lock 的意思,會將 /etc/shadow 第二欄最前面加上 ! 使密碼失效;
- -u :與 -l 相對,是 Unlock 的意思!
- -S :列出密碼相關參數,亦即 shadow 檔案內的大部分資訊。
- -n :後面接天數,shadow 的第 4 欄位,多久不可修改密碼天數
- -x :天数,多久内必须修改密码;
- -w :日期天数,密码过期前的警告天数
- -i :密码失效天数
zero@ubuntu:/home$ sudo passwd test1 # 使用root权限修改指定用户密码
[sudo] password for zero:
New password:
Retype new password:
passwd: password updated successfullyzero@ubuntu:/home$ passwd # 不加任何参数,为修改当前自身密码
Changing password for zero.
Current password:
New password:
Retype new password:
The password has not been changed.
3.3 使用chage操作密码
参数列表:
- -l :列出该账号的详细信息;
- -d :YYYY-MM-DD格式的日期,修改最近一次更改密碼的日期;
- -E :YYYY-MM-DD的日期,账号失效日期;
- -I :天数,密码失效天数;
- -m :天数,密码最短保留天数;
- -M :天数,密码需要更改的天数;
- -W :天数,密码过期前的警告天数;
示例1,-l直接查看详细信息,注意,需要使用root权限:
zero@ubuntu:/home$ chage -l test1
chage: Permission denied.
zero@ubuntu:/home$ sudo chage -l test1
Last password change : Sep 08, 2023
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
3.4 使用usermod修改账户信息
3.4.1 参数信息如下:
- -c :账号说明内容;
- -d :账号家目录;
- -e :账号失效日期,格式是 YYYY-MM-DD ;
- -f :,0为立刻失效, -1 为永不失效;
- -g :接群组名称,用于设定账户的初始群组;
- -G :可加入的群组名称,会相应修改 /etc/group 內的相关信息;
- -a :与 -G 合用,增加可加入的群组;
- -l :修改账号名称;
- -s :指定shell,例如 /bin/bash 或 /bin/csh 等等;
- -u :修改uid;
- -L :锁定账户,使账户无法登录;
- -U :解锁账户,使账户可以正常使用。
示例1,将test2的用户名修改为test:
zero@ubuntu:/home$ sudo usermod -l test test2
[sudo] password for zero:
# ...省略部分不必要的数据
test1:x:1001:1001:,,,:/home/test1:/bin/bash
test3:x:1003:1000::/home/test3:/bin/sh
test4:x:998:998::/home/test4:/bin/sh
test:x:1002:1002::/home/test2:/bin/sh
3.4.2 修改用户的shell版本限制用户登录
(1)修改为/sbin/nologin禁止用户登录
# 修改shell
zero@ubuntu:~$ sudo usermod -s /sbin/nologin git_user# 尝试登录
PS C:\WINDOWS\system32> ssh git_user@192.168.60.3
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-83-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/advantageSystem information as of Wed Sep 13 01:33:57 AM UTC 2023System load: 0.00439453125 Processes: 218Usage of /: 37.5% of 9.75GB Users logged in: 1Memory usage: 12% IPv4 address for ens33: 192.168.60.3Swap usage: 0%* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8sjust raised the bar for easy, resilient and secure K8s cluster deployment.https://ubuntu.com/engage/secure-kubernetes-at-the-edgeExpanded Security Maintenance for Applications is not enabled.15 updates can be applied immediately.
3 of these updates are standard security updates.
To see these additional updates run: apt list --upgradableEnable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro statusLast login: Wed Sep 13 01:09:11 2023 from 192.168.60.1
# 这里,提示拒绝访问,然后关闭连接
This account is currently not available.
Connection to 192.168.60.3 closed.
(2)设置为/bin/get-shell限制用户只能通过ssh拉取git库,而不能通过ssh登录服务器
# 修改shell
zero@ubuntu:~$ sudo usermod -s /bin/git-shell git_user# 尝试登录
PS C:\WINDOWS\system32> ssh git_user@192.168.60.3
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-83-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/advantageSystem information as of Wed Sep 13 01:09:10 AM UTC 2023System load: 0.31298828125 Processes: 222Usage of /: 37.5% of 9.75GB Users logged in: 1Memory usage: 12% IPv4 address for ens33: 192.168.60.3Swap usage: 0%* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8sjust raised the bar for easy, resilient and secure K8s cluster deployment.https://ubuntu.com/engage/secure-kubernetes-at-the-edgeExpanded Security Maintenance for Applications is not enabled.15 updates can be applied immediately.
3 of these updates are standard security updates.
To see these additional updates run: apt list --upgradableEnable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro statusLast login: Wed Sep 13 01:07:57 2023 from 192.168.60.1# 提示git-shell未启动,无法登录。
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to 192.168.60.3 closed.
3.5 使用userdel删除用户
使用userdel会直接删除账户的所有相关数据,使用时需谨慎,一般通常是用禁用账号来替代删除账户。
参数:
- -r:连使用者家目录也一起删除。
示例1,删除test1账户:
zero@ubuntu:/home$ sudo userdel test1
zero@ubuntu:/home$ cat /etc/passwd
# test1账户已删除
test3:x:1003:1000::/home/test3:/bin/sh
test4:x:998:998::/home/test4:/bin/sh
test:x:1002:1002::/home/test2:/bin/sh
四、群组管理
4.1 使用groupadd添加群组
参数如下:
- -g:指定GID号;
- -r:建立系统群组;
zero@ubuntu:/$ sudo groupadd test
[sudo] password for zero:
zero@ubuntu:/$ getent group
# 此处省略多余数据
test2:x:1002:
test4:x:998:
test:x:1003:
zero@ubuntu:/$
4.2 使用groupmod修改群组权限
参数如下:
- -g:修改GID数字;
- -n:修改群组名称;
# 将群组test更名为Test
zero@ubuntu:/$ sudo groupmod -n Test test
zero@ubuntu:/$ grep Test /etc/group
Test:x:1003:
4.3 使用groupdel删除群组
直接删除群组,会删除响应资料,所以删除需谨慎,需要先修改用户的群组之后再删除。
# 删除Test群组
zero@ubuntu:/$ sudo groupdel Test
4.4 使用gpasswd管理群组管理员
通过gpasswd可以设置某个群组的管理员,然后管理员就可以进行相关的群组管理操作,包括加入,移除等。
4.4.1 设置群组密码
不带任何参数是表示设置群组密码。
# 先创建一个群组
zero@ubuntu:/$ sudo groupdel Test
zero@ubuntu:/$ sudo groupadd test# 然后设置群组的密码,需要使用root权限。
zero@ubuntu:/$ gpasswd test
gpasswd: Permission denied.
zero@ubuntu:/$ sudo gpasswd test
Changing the password for group test
New Password:
Re-enter new password:
4.4.2 通过参数管理群组信息
gpasswd [-A user1,user2,...] [-M user3,user4,....] [-rR] groupname
- -A:表示将goupname群组的主控权交由后面的使用者管理;
- -M:表示将某些账户添加到当前群组;
- -r:移除群组groupname的密码;
- -R:使群组groupname的密码失效;
4.4.3 通过ad参数添加或删除群组成员
gpasswd [-ad] user groupname
- -a:将某位使用者加入到群组groupname;
- -d:将某位成员从群组中移除;
五、使用ACL管理权限
ACL是Access Control List的缩写,主要用来进行权限管理,可以对单一档案或目录进行rwx的权限设置。
5.1 安装ACL
目前大部分linux的CentOS系统都有内置acl,可以先查看下ACL状态。
zero@ubuntu:~$ dpkg -l | grep acl
ii acl 2.3.1-1 amd64 access control list - utilities
ii libacl1:amd64 2.3.1-1 amd64 access control list - shared library
没有安装时会提示错误,可以自行再安装下acl工具。
zero@ubuntu:~$ sudo apt-get install acl
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:acl
0 upgraded, 1 newly installed, 0 to remove and 12 not upgraded.
Need to get 38.5 kB of archives.
After this operation, 205 kB of additional disk space will be used.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/main amd64 acl amd64 2.3.1-1 [38.5 kB]
Fetched 38.5 kB in 3s (12.1 kB/s)
Selecting previously unselected package acl.
(Reading database ... 109692 files and directories currently installed.)
Preparing to unpack .../archives/acl_2.3.1-1_amd64.deb ...
Unpacking acl (2.3.1-1) ...
Setting up acl (2.3.1-1) ...
Processing triggers for man-db (2.10.2-1) ...
Scanning processes...
Scanning linux images...Running kernel seems to be up-to-date.No services need to be restarted.No containers need to be restarted.No user sessions are running outdated binaries.No VM guests are running outdated hypervisor (qemu) binaries on this host.
5.2 权限说明含义:
1.文档类型:
- d:目录
- -:档案
- l:连接档
- b:可供存储的周边设备
- c:硬件设备,如键盘,鼠标
2.拥有者(owner)权限
3.所属群体(group)权限
4.其他人(other)权限
5.3 使用setfacl设置权限
5.3.1 指令
setfacl [-bkRd] [{-m|-x}] acl参数 目标档案、资料名
- -m :设定后续acl参数,不可与 -x 合用;
- -x :刪除后续的 acl 参数,不可与 -m 合用;
- -b :移除所有的ACL 参数;
- -k :移除预设的 ACL 参数;
- -R :巡回设定acl ,亦即包括子目录;
- -d :设定预设的acl参数!只對目录有效,在该目录新建的档案会引用该参数。
- 以u:用户:权限组:权限的形式修改档案权限,k
5.3.2 acl参数说明
- u:用户(user)权限,格式“u:用户名:权限”;
- g:群组(group)权限,格式“g:群组名:权限”;
- m:最大权限,即为可设置的最大权限,设定后,超出设定的权限设置会无效,格式“m:权限”;
- o:其他(other)权限,格式“o:用户名:权限”;
- 当使用-x参数时,仅需要输入参数即可,不需要输入参数,格式如“u:用户名”;
示例,创建一个文件,然后修改权限:
# 首先创建一个账号
zero@ubuntu:~$ touch acl_test# 查询测试文件状态
zero@ubuntu:~$ ll acl_test
-rw-rw-r-- 1 zero zero 0 Sep 9 05:39 acl_test# 修改用户的权限,使用acl修改后,权限会多一个+号,可以使用getfacl识别
zero@ubuntu:~$ setfacl -m u:test:rwx acl_test
zero@ubuntu:~$ ll acl_test
-rw-rwxr--+ 1 zero zero 0 Sep 9 05:39 acl_test*# 修改用拥有者的权限,用户名防空
zero@ubuntu:~$ setfacl -m u::rwx acl_test
zero@ubuntu:~$ ll acl_test
-rwxrwxr--+ 1 zero zero 0 Sep 9 05:39 acl_test*# 修改其他用户权限
zero@ubuntu:~$ setfacl -m o::rwx acl_test
zero@ubuntu:~$ ll acl_test
-rwxrwxrwx+ 1 zero zero 0 Sep 9 05:39 acl_test*# 删除当前设置的权限
zero@ubuntu:/mnt$ getfacl git
# file: git
# owner: root
# group: root
user::rwx
group::r-x
group:git:rwx # 当前有群组权限
mask::rwx
other::r-xzero@ubuntu:/mnt$ setfacl -x g:git git # 删除git群组的权限
setfacl: git: Operation not permitted
zero@ubuntu:/mnt$ sudo setfacl -x g:git git
[sudo] password for zero:
Sorry, try again.
[sudo] password for zero:
zero@ubuntu:/mnt$ getfacl git
# file: git
# owner: root
# group: root
user::rwx
group::r-x # 权限已删除
mask::r-x
other::r-x
5.4 使用getfacl获取权限
getfacl 档案名
直接获取档案的权限信息。
zero@ubuntu:~$ getfacl acl_test
# file: acl_test # 文件名
# owner: zero # 拥有者
# group: zero # 群组
user::rwx # 拥有者的权限
user:test:rwx # test的权限
group::rw- # 群组的权限
mask::rwx # 最大权限
other::rwx # 其他用户的权限
5.5 使用chown修改拥有者
sudo chown -R 目标用户 目标文件、文件夹路径
# 修改git_user的家目录拥有着为git_user,-R表示递归修改子目录
zero@ubuntu:/$ sudo chown -R git_user /home/git_user
[sudo] password for zero:
zero@ubuntu:/$ getfacl /home/git_user
getfacl: Removing leading '/' from absolute path names
# file: home/git_user
# owner: git_user
# group: root
user::rwx
group::r-x
other::r-x
5.6 使用chgrp修改拥有群组
sudo chgrp 目标群组 目标路径
# 修改/home/git_user的拥有群组为git
zero@ubuntu:/$ sudo chgrp git /home/git_user
zero@ubuntu:/$ getfacl /home/git_user
getfacl: Removing leading '/' from absolute path names
# file: home/git_user
# owner: git_user
# group: git
user::rwx
group::r-x
other::r-x