一、关于Linux的账号
账号分为用户账号和组账号:
账号 | 成员 |
---|---|
用户账号 | 超级用户、程序用户、普通用户 |
组账号 | 基本组(私有组)、附加组(公共组) |
- 超级用户:即root系统管理员,uid(用户标识号)、gid(组标识号)=0,具备系统最高权限。
- 程序用户:即每个程序在创建时会自动创建一个程序用户,uid、gid=1-999,一般这个用户只在维护这个程序时才会被使用,不被允许使用账户、密码登录到系统中去。
- 普通用户:即系统账户,用命令创建,uid、gid=1000+,一般普通用户的权限是有限的。
通过uid、gid两者共同区分用户。
一个用户有两个组:基本组必须有(在创建用户时会自动生成同名的基本组),附加组不是必须的。
针对一个组设置权限,针对的是属于这个基本组的用户。
二、相关命令
查看用户信息:
- /ect/passwd:用户账号的文件位置
每行对应一个用户的账号记录
对应为:用户账号名、密码占位符、用户账号ID、组账号ID、用户说明、宿主目录、登录 shell
- /etc/shadow:保存用户的密码、账号有效期信息等信息
每一行对应一个用户的密码记录,共九个字段,用冒号隔开。
对应用户名、密码、上次修改口令的时间(与1970.1.1相隔的天数)
第八段为用户过期日期。,指定了用户作废的天数(从1970.1.1开始的天数),空则永久可用。
添加用户账号:useradd
- useradd -u 数字 用户名 #指定uid
- -useradd -d 目录 用户名 #指定宿主目录
- useradd -e 2020-09-01 用户名 #指定账户失效时间
- useradd -g 组名 用户名 #指定用户基本组
- useradd -G 组名 用户名 #指定附加组
- useradd -M 用户名 #不建立宿主目录
- useradd -s /sbin/nologin/ 用户名 #指定用户登录shell,nologin为不允许登录
查询用户账户:
cat /etc/passwd #全部列出
head -5 /etc/passwd
tail -5 /etc/passwd
设置用户密码:
passwd +用户名
passwd -d #清空密码,之后可以以空密码登录,未设密码则不可登录
-l #锁定用户,用户退出后设置,再登录才生效
-S #查询用户状态
-u #解锁用户
设置用户密码:
usermod -u #修改用户uid用户名
-d #修改宿主目录
-e #修改用户账户失效时间
-s #指定用户登录shell
-l #更改用户登录名
-L #锁定用户
-U #解锁用户
-g #修改用户所属的基本组
-G #修改用户所属的附加组
删除用户:
userdel 用户名
-r #删除用户时将宿主目录也连带删除
添加组账户:
groupadd 用户名
-g #指定组id
查询组账户
grep 用户名 /etc/group
删除组账户
groupdel 用户名
用户加入指定组中
gpasswd -a 用户名 组名(用户要已存在)
查询账户信息
id 用户名 #查询用户的uid和gid,所属的基本组,附加组信息
groups 用户名 #查询用户所属的组
finger 用户名 #查询用户详细信息
w 查询当前主机用户登录情况
将用户从指定组中移除
gpasswd -d 用户名 组名 #基本组不可移
指定多个用户同时加入某个组
gpasswd -M 用户1,用户2,用户3 (组名)
修改文件的属主和属组
chown 属主 #只修改该文件的属主
chown 属主:属组 #修改该文件的属主和属组
chown :属组 #只修改该文件的属组
查询账户信息:
- id 用户名 #查询用户的uid和gid,所属的基本组/附加组信息
- groups 用户名 #查询用户所属的组
- finger 用户名 #查询用户的详细信息
- w #查询当前主机用户登录情况
文件/目录的权限和归属
访问权限:读取r:读取文件内容/目录列表/下载
写入w:允许修改内容,在目录中新建/移动/删除文件和子目录
可执行x:允许运行程序/切换目录
归属(所有权):属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
设置文件/目录的权限
权限掩码umask
umask作用
- 控制新建的文件或者目录的权限
- 默认权限去除umask的权限为新建的文件或者目录的权限
umask设置:umask 022 #代表下面新建的文件权限为644,目录权限为755.
umask查看:umask