Linux 系统是通过用户的 ID 来识别每个账号,默认 ID 长度为 32 位,从 0 开始,用户的 ID及 UID 限制在 60000 以下,其中 Linux 账户UID分为三种:
useradd
命令创建账户,groupadd
用来创建组,创建账户和组时需要有管理员权限。下面给出两个命令的使用方法:
描述:创建新账户
用法:useradd [选项] 用户名字
选项 | 解释 |
---|---|
-c | 设置账号描述信息,一般为账号全称 |
-d | 设置账号家目录,默认为/home/用户名 |
-e | 设置账户失效日期,格式为 YYYY-MM-DD |
-g | 设置账户基本组 |
-G | 设置账户附加组,多个附加组用逗号隔开 |
-M | 不创建账户家目录,一般与-s 结合使用 |
-s | 设置账户登录的 shell,默认 bash |
-u | 指定账户 UID |
例1:
useradd -c administrator -d /home/admini -e 2020-01-01 -g root -G bin,adm,mail admin
创建普通用户 admin,全名administrator,家目录/home/admini
,失效日期为 2020-1-1,账户基本组 root,附加组bin,adm,mail。
例2:
useradd -s /sbin/nologin -M user1
创建无法登录系统且无家目录的账户user1
描述:创建组账户
用法:groupadd [选项] 用户名字
选项 | 解释 |
---|---|
-g | 设置组 ID |
例:
groupadd -g 1000 Hello
创建 Hello 组账户,GID 为 1000
id root //查看 root 账户的相关信息
passwd
描述:更新账户认证信息。
用法:passwd [选项] [账户名称]
参数选项如下:
选项 | 解释 |
---|---|
-l | 锁定账户,仅root 可使用此选项 |
–stdin | 从文件或管道读取密码 |
-u | 解锁账户 |
-d | 快速清空账户密码,仅 root 使用 |
例:
passwd Shawn //修改 Shawn 密码
echo “123456” |passwd --stdin Shawn //设置 Shawn 的密码为 123456
passwd -l Shawn //锁定 Shawn
passwd -u Shawn //解锁
passwd -d Shawn //清空 Shawn 账户密码
usermod
描述:修改账户信息
用法:usermod [选项] [账户名称]
参数选项如下:
参数 | 解释 |
---|---|
-d | 修改账户家目录 |
-e | 修改账户失效日期 |
-g | 修改账户所属基本组 |
-G | 修改账户所属附加组 |
-s | 修改账户登录 shell |
-u | 修改账户 UID |
userdel
描述:删除账户及相关文件,如果不加参数只删除账户,不删除账户家目录及文件
用法:userdel [选项] 账户名称
参数选项如下:
参数 | 解释 |
---|---|
-r | 删除账户及其相关文件 |
-f | 强制删除账户,即使账户正在使用 |
groupdel
描述:删除组账户
账户信息文件保存在/etc/passwd
中,文件内容如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
...
该文件共七列,以下是每一列解释。
账户密码文件保存在/etc/shadow
文件中,文件内容如下:
root:$1$GC$bLGQXmAa7pjS7TkkHvHel.:18032:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
lp:*:15980:0:99999:7:::
sync:*:15980:0:99999:7:::
文件已冒号分开共九列,以下是每一列解释。
组账户信息被保存在/etc/group
中,文件内容如下:
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
文件共四列,以下为每一列解释。
组账户密码信息被保存在/etc/gshadow
,内容如下:
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon
tty:::
文件共四列,以下为每一列解释。
/etc/group
第四列一样gpasswd 组名
的方式可以为组设置密码,通过gpasswd -A 账户名 组名
可以添加组管理员。gpasswd admin #设置组密码
gpasswd -A mail admin #将 mail 用户设置为组 admin 的管理员
Linux 权限分为读、写、执行三种控制,下面为三种权限对应关系。
数字 | 字符 | 文件 | 目录 |
---|---|---|---|
4 | r | 查看文件内容 | 查看目录下的文件与目录名 |
2 | w | 修改文件内容 | 在目录下增、删、改文件或目录 |
1 | x | 可执行,一般为程序或脚本 | 可以 cd 进入该目录 |
描述:改变文件或目录权限
用法:chmod [选项] 文件或目录
常用选项及解释如下:
选项 | 解释 |
---|---|
–reference=RFILE | 根据参考文档的权限设置该文档的权限 |
-R | 递归将所有权限应用于所有的子目录与子文件中 |
chmod
命令参数中,u是属主,g 是属组,o 是其他用户,a 代表所有人。
下面是通过chmod
改变文件权限的例子。
chmod u=rwx,g=rwx,o=rwx test.log
chmod 777 test.log
#设置 test.log 文件的主,组,其他用户权限为rwx
chmod a=rw test.log
#所有人对test.log 可读写
chmod g-x,o-wx test.log
#test.log 文件属组去掉执行权限,其他用户去掉写,和执行权限
chmod --reference=old.txt new.txt
#已 old.txt 为标准修改 new.txt 文件的权限
描述:修改文件或目录的所有者与所属组。
用法:chown [选项] [所有者]:[所属组] 文件/目录
选项:-R 递归将权限应用于所有子目录于子文件
例:
chown user1:mail install
#修改install文件所有者为 user1,所属组为 mail
chown :root install
#修改 install 文件所属组为 root
chown root install
#修改文件属主为 root