用户账户和权限管理
一、用户账号
超级用户 管理员账号 root 默认对本机拥有最高权限的账户。在系统中是唯一。
普通用户 一般都是由管理员创建,拥有的权利是受到限制的。一般只在自己的家目录当中拥有完整的权限。可以正常的登录系统。
程序用户 在安装软件时,有的应用程序需要创建一些账号来保证程序的正常运行,就会创建一个程序账户,程序账户是一些特定的低权限的账户,而且这些账户是不能登录到系统的。作用:保证程序的正常运行。
UID 用户的标识号,创建用户的时候可以指定,也可以系统自动分配。但是唯一,不能重复。
GID 组标识,创建用户的时候可以指定,可以自动分配,也是唯一的,不能重复。
根据uid来区分:
管理员的uid 0
普通用户的uid 1000
程序用户的uid 1-999
判定一个用户是否为管理员,以uid为标准,uid=0就是管理员。
/etc/passwd,每行的含义是什么
root❌0:0:root:/root:/bin/bash
dn❌1000:1000:dn:/home/dn:/bin/bash
saned❌989:983:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
字段 1: 用户账号的名称
字段 2: 用户密码的占位符。无实意。
字段 3:用户的uid号
字段 4:用户的gid号
字段 5:用户的全名,一般都和字段1一致
字段 6:用户的家目录所在的位置
字段 7:用户登录的shall,shell默认的解释器就是bash,只有/bin/bash 才可以登录系统。
/sbin/nologin /bin/false 表示不可以登录系统。一般程序用户的shell都是/sbin/nologin
/bin/false 普通用户能否设置成/sbin/nologin? 可以,但是不能登录系统
/etc/passwd 保存的是用户信息
/etc/shadow:用户的密码和账户的有效期
root:
6
6
6SuJ/b/.LajcTU7.1SVkuaSgemZKK2RGRB0472IYMTUkjFn.i0yoMKba8c.EcRzttYQEjo8G4ilThCTu/WgU3Pv9AMsJ5ewfL/3Wusp/::0:99999:7:::
字段 1: 账户的账号名称
字段 2: 用户的密码,MD5加密的方式。*表示不能登录系统,!!表示密码为空,不是真的空。什么都没有才是真的为空
字段 3: 表上上一次修改密码的时间。19864,表示从1970-1-1到2024-5-21号过了多少天。
字段 4: 密码的最短有效天数,0 表示不限制
字段 5: 密码的最长有效天数 99999表示不限制
字段 6: 提前多少天告诉用户,密码将会过期,默认是7.
字段 7: 密码过期之后多少天会禁用此用户
字段 8: 账号失效了多久,为空,永不失效
字段 9: 保留字段,预留字段,无实意
二、添加用户,创建用户
useradd
-u 指定uid号。已被占用的uid不能被指定。
-d 指定用户的家目录的位置(一般是不动的)
-e 指定用户的账户失效的时候,格式 yyyy-mm-dd
-M 创建用户时,不建立家目录
-s 创建用户时,指定用户的登录shell
用户创建密码:
passwd 用户名
passwd -d 清空指定用户的密码。(慎用)
passwd -l 锁定用户,无法登陆。
passwd -u 解锁用户
passwd -S 查看用户的状态,用户是否被锁定。
修改密码的另一种方式:
echo 密码 |passwd --stdin 用户名
修改账号的属性:
usermod
usermod -u 修改用户的uid号
groupmod -g 修改用户的gid号
usermod -d 修改用户的家目录地址(没人用)
usermod -e 修改用户的账户失效时间 yyyy-mm-dd
usermod -s 修改用户登录的shell
usermod -L 锁定用户
usermod -U 解锁用户
锁定用户的两种方式
passwd -l
usermod -L
删除用户
userdel 用户名,只删除用户,不删除家目录
userdel -r 用户名 删除用户的同时删除家目录
三、组账号
/etc/group 组账号信息
/etc/gshadow 保存组账号的额外信息
groupadd 添加组账号
groupdel 删除组账号
添加或者删除组成员
gpasswd
gpasswd -a 组员 组名 向组内添加用户
gpasswd -d 组员 组名 删除组内用户
gpasswd -M 组员 组名 定义组员的列表,每个用户用逗号隔开。
添加可以一次性多个,删除只能一个个删除
配置文件:
/etc/profile 全局配置,对所有用户都生效
~/.bash_profile 用户登录时会读取的配置,只对自己生效。
~/.bashrc 用户的配置文件,只对自己生效,每一次新打开一个shell就会读取这个文件
~/.bash_logout 用户退出当前shell的时候,会执行的配置文件
每次登录都是shell的一个子shell,每个之间互相隔离
读取顺序
/etc/profile>~/.bash_profile>
~/.bash_logout
四、权限管理
查询用户身份的标识
id 用户名 查询uid,gid,所属组
查询已经登录到主机的用户信息
w who users
u:所有者
g:所在组
o:其他用户
a:所有用户
八进制算法替换
421
r read 读权限 4
w wirte 写权限 2
x 执行 执行权限 1
-rw-r–r–,1 root root
rw- 6 所有者
r-- 4 所在组
r-- 4 其他用户
6 4 4
-rwxr-x–x
rwx 7
r-x 5
–x 1
7 5 1
chmod 赋权命令
chmod 八进制算法 文件名
递归赋权
chmod -R 修改权限 目录 只有一层目录,目录当中的所有文件都会生效,
umask 用来设定文件和目录的默认权限
文件的默认权限 666
目录的默认权限 777
创建文件,默认就不给执行权限
创建目录,一定要有执行权限,没有执行权限,就没有办法切换,就不能进入这个目录
修改所有者和所在组:
前提:用户和组都要存在,要先创建好。
chown
chown ld:ld 所有者和所在组一起变
chown ld 文件名/目录名 只修改所有者
chown :ld 文件名/目录名 只修改所在组
chown -R 递归更改