本文记录Linux系统用户、组和相关设置。
/etc/group
存储当前系统中的用户组信息注意:
2. 系统中root分组的组编号一定为0
3. 组号1~499为系统预留的组编号,一般是预留给系统安装的软件或者服务的编号,越早安装的软件或者服务的组编号约早。用户手动创建的用户组编号从500开始
4. 组密码占位符,无一例外,全部用x表示
/etc/gshadow
存储当前系统中用户组的密码信息注意:
1. 如果组密码处为“*” “!”或者为空时候,则该组没有密码
2. 如果组管理者为空,则表示该组内所有成员都可以管理该组
/ect/passwd
存储当前系统中所有的用户信息在linux中,超级管理员root的用户编号一定为0
/ect/shadow
存储当前系统中所有用户的密码信息密码是一个单向加密过的字符串
d
目录,例如上表档名为『.gconf』的那一行-
文档,例如上表档名为『install.log』那一行l
连结档(link file)b
装置文件里面的可供储存的接口设备(可随机存取装置)c
装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。id username
我当前的命令输出,可以查看用户 id 、组信息:
$ id vvd
用户id=1000(vvd) 组id=1000(vvd) 组=1000(vvd),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),132(lxd),133(sambashare),135(libvirt)
useradd xxx //创建一个名为xxx的用户
该命令执行后
/etc/passwd
文件中添加xxx用户的信息
/etc/group
文件中添加一个名为xxx的用户组信息
passwd xxx //为xxx用户设置密码
参数 | 描述 | 示例 |
---|---|---|
-d | 设置该用户的home目录 | useradd -d /home/helloworld hello //新建hello用户,并且将其home目录设置为/home/helloworld |
-u | 设置其userid | useradd -u 668 hello //新建一个hello用户,将他的id设置为668 |
-g | 设置其主组 | useradd -g root hello //新建一个hello用户,并将其假如root组 |
-m | 生成home目录的文件夹 | useradd -m hello //新建一个hello用户,并且在默认位置申城一个hello文件夹(/home/hello),并且将/etc/skel下的文件复制到该目录下 |
-m
参数useradd username -m
随后需要指定shell,不然不便于终端操作
usermod -s /bin/bash username
home
以外的目录作为家目录useradd username -m -d /path/to/home
usermod
命令usermod 参数 用户名
参数 | 描述 | 示例 |
---|---|---|
-l | 修改新用户名 | usermod -l helloworld hello 将hello用户名改为helloworld,但其home目录不改变 |
-u | 修改用户的userid | usermod -u 888 hello 将hello的userid改为888 |
-d | 修改用户的home目录 | usermod -d /home/new_home hello 将hello用户的家目录改为/home/new_home |
-g | 修改用户的主用户组 | usermod -g anotherg hello 将hello用户的组改为anotherg |
-G | 将现有用户添加到辅助组(可以是多个) | usermod [-G] [[GroupName1,GroupName2]] [UserName] / usermod -a -G mygroup user1 |
-L | 锁定用户,使其不能登录 | usermod -L hello 锁定hello |
-U | 解除锁定 | usermod -U hello 解除锁定hello |
-a | 添加 不修改之前的组 | usermod -aG ssh hello 将hello用户加入到ssh组内,不改变其他组 |
gpasswd
命令gpasswd 参数 用户名 组名
gpasswd
命令用于管理/etc/group
和/etc/gshadow
。每个组都可以有管理员、成员和密码。
参数 | 描述 | 示例 |
---|---|---|
-M | 将现有用户添加到次要组或者附加组 | gpasswd -M user1 mygroup 把 user1 添加到 mygroup 中 |
-M | 添加多个用户到次要组或附加组中 | gpasswd -M user2,user3 mygroup1 把 user2 和 user3 添加到 mygroup1 中 |
-d | 从组中删除一个用户 | gpasswd -d user1 mygroup 从 mygroup 中删除 user1 |
userdel 参数 用户名
参数 | 描述 | 示例 |
---|---|---|
-r | 删除用户的同时将其home目录也删掉 | userdel -r hello 将hello用户连根删掉 |
groupadd 组名
groupmod -n 新组名 旧组名 //修改组名
groupmod -g 新组id 旧组id 修改组ID
getent group groupname
$ getent group sudo
sudo:x:27:vvd
groupdel 组名
chown username:group 文件名
来同时修改文档或目录的拥有者和所在组
chmod 参数 文件名
chmod 777(对应权限的数字) 文件名
命令 | 描述 |
---|---|
chmod u+w 文件名 | 给user用户加上w权限 |
chmod g-r 文件名 | 将group中的r权限去掉 |
chmod a+x 文件名 | 给user、group、other全部加上x权限 |
/usr/bin/xauth: file /home/user/.Xauthority does not exist
useradd user
而没有授权对应的家目录
chown username:username -R /home/user_dir