在线网站软件免费下载安装,重庆玻璃制作厂家,个人网页制作成品欣赏,法律门户网站源码一、概述
本文记录Ubuntu系统下通过命令操作用户账户进行管理。
Ubuntu系统版本#xff1a;
Linux ubuntu 5.15.0-1034-raspi
#37-Ubuntu SMP PREEMPT Mon Jul 17 10:02:14 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
注#xff1a;查看系统版本号的指令如下
uname -…一、概述
本文记录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权限。
zeroubuntu:/home$ sudo passwd # 设置root账户密码
New password:
Retype new password:
passwd: password updated successfully 二、查看用户
2.1 使用Cat指令查找所有用户
cat /etc/passwd
查询结果如下
会将所有用户列出并显示出具体的分组信息ID主目录。
ubuntuubuntu:~$ 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
ubuntuubuntu:~$ 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分组。
ubuntuubuntu:~$ id root
uid0(root) gid0(root) groups0(root)
2.4 使用who查找当前登录的用户
who
ubuntuubuntu:~$ who
ubuntu pts/0 2023-08-15 08:36 (IP地址)
ubuntu pts/1 2023-08-15 08:52 (IP地址)
2.5 使用getent group查看用户组及群组成员
ubuntuubuntu:~$ 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:# 当后面添加具体的群组名称时可以查询该群组的所有成员列表
zeroubuntu:~$ getent group test2
test2:x:1002:test,test4
2.6使用groups查看用户所属群组
zeroubuntu:~$ groups # 不带参数直接查询当前账户的权限
zero adm cdrom sudo dip plugdev lxd# 带名称可以查询指定用户的所属群组
zeroubuntu:~$ groups test
test : test2
zeroubuntu:~$ groups zero
zero : zero adm cdrom sudo dip plugdev lxd
三、用户管理
3.1 创建用户
3.1.1 使用adduser创建用户
adduser可以理解为对useradd封装后的方法可以比较编辑的添加用户。
zeroubuntu:~$ 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# 查看用户信息可以看到已经有响应的权限信息了。
zeroubuntu:~$ id test1
uid1001(test1) gid1001(test1) groups1001(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使用默认参数创建用户
# 使用默认参数创建
zeroubuntu:~$ sudo useradd test2
[sudo] password for zero:# 查询用户
zeroubuntu:/home$ id test2
uid1002(test2) gid1002(test2) groups1002(test2)# 查看用户信息有创建用户家目录
zeroubuntu:/home$ grep test2 /etc/passwd
/etc/passwd:test2:x:1002:1002::/home/test2:/bin/sh
示例2创建用户时指定默认群组系统再创建群组
# 指定uid和群组名称
zeroubuntu:/home$ useradd -u 1003 -g zero test3
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
zeroubuntu:/home$ sudo useradd -u 1003 -g zero test3# 查看用户信息初始群组就是设置的群组
zeroubuntu:/home$ id test3
uid1003(test3) gid1000(zero) groups1000(zero)
zeroubuntu:/home$ grep test3 /etc/passwd
test3:x:1003:1000::/home/test3:/bin/sh
示例3创建系统账户
zeroubuntu:/home$ useradd -r test4 # -r 代表系统账户
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
zeroubuntu:/home$ sudo useradd -r test4
[sudo] password for zero:
zeroubuntu:/home$ id test4
uid998(test4) gid998(test4) groups998(test4)
zeroubuntu:/home$ grep test4 /etc/passwd
test4:x:998:998::/home/test4:/bin/sh# 系统账户会修改gshadow文件。
zeroubuntu:/home$ grep test4 /etc/gshadow
grep: /etc/gshadow: Permission denied
zeroubuntu:/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 密码失效天数
zeroubuntu:/home$ sudo passwd test1 # 使用root权限修改指定用户密码
[sudo] password for zero:
New password:
Retype new password:
passwd: password updated successfullyzeroubuntu:/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权限
zeroubuntu:/home$ chage -l test1
chage: Permission denied.
zeroubuntu:/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修改账户信息
参数信息如下
-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
zeroubuntu:/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.5 使用userdel删除用户
使用userdel会直接删除账户的所有相关数据使用时需谨慎一般通常是用禁用账号来替代删除账户。
参数
-r连使用者家目录也一起删除。
示例1删除test1账户
zeroubuntu:/home$ sudo userdel test1
zeroubuntu:/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建立系统群组
zeroubuntu:/$ sudo groupadd test
[sudo] password for zero:
zeroubuntu:/$ getent group
# 此处省略多余数据
test2:x:1002:
test4:x:998:
test:x:1003:
zeroubuntu:/$4.2 使用groupmod修改群组权限
参数如下
-g修改GID数字-n修改群组名称
# 将群组test更名为Test
zeroubuntu:/$ sudo groupmod -n Test test
zeroubuntu:/$ grep Test /etc/group
Test:x:1003:
4.3 使用groupdel删除群组
直接删除群组会删除响应资料所以删除需谨慎需要先修改用户的群组之后再删除。
# 删除Test群组
zeroubuntu:/$ sudo groupdel Test
4.4 使用gpasswd管理群组管理员
通过gpasswd可以设置某个群组的管理员然后管理员就可以进行相关的群组管理操作包括加入移除等。
4.4.1 设置群组密码
不带任何参数是表示设置群组密码。
# 先创建一个群组
zeroubuntu:/$ sudo groupdel Test
zeroubuntu:/$ sudo groupadd test# 然后设置群组的密码需要使用root权限。
zeroubuntu:/$ gpasswd test
gpasswd: Permission denied.
zeroubuntu:/$ 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状态。
zeroubuntu:~$ 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工具。
zeroubuntu:~$ 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:用户名:权限”
示例创建一个文件然后修改权限
# 首先创建一个账号
zeroubuntu:~$ touch acl_test# 查询测试文件状态
zeroubuntu:~$ ll acl_test
-rw-rw-r-- 1 zero zero 0 Sep 9 05:39 acl_test# 修改用户的权限使用acl修改后权限会多一个号可以使用getfacl识别
zeroubuntu:~$ setfacl -m u:test:rwx acl_test
zeroubuntu:~$ ll acl_test
-rw-rwxr-- 1 zero zero 0 Sep 9 05:39 acl_test*# 修改用拥有者的权限用户名防空
zeroubuntu:~$ setfacl -m u::rwx acl_test
zeroubuntu:~$ ll acl_test
-rwxrwxr-- 1 zero zero 0 Sep 9 05:39 acl_test*# 修改其他用户权限
zeroubuntu:~$ setfacl -m o::rwx acl_test
zeroubuntu:~$ ll acl_test
-rwxrwxrwx 1 zero zero 0 Sep 9 05:39 acl_test*
5.4 使用getfacl获取权限
getfacl 档案名
直接获取档案的权限信息。
zeroubuntu:~$ getfacl acl_test
# file: acl_test # 文件名
# owner: zero # 拥有者
# group: zero # 群组
user::rwx # 拥有者的权限
user:test:rwx # test的权限
group::rw- # 群组的权限
mask::rwx # 最大权限
other::rwx # 其他用户的权限