权限管理
权限:计算机资源的访问能力
Linux定义了三种用户的使用权限:属主、属组和其他用户
安全上下文:用户是资源访问的凭证,计算机资源实际由进程访问,因而进程的权限由所发起用户的权限决定
权限(r, w , x)
文件:
r:可读
w:可写
x: 可执行
目录:
r:可以查看目录之下的文件
w:可以在此目录下创建文件
x:可以切换进此目录,或可以查看内部文件的详细信息
三类用户(u:user; g: group; o: others)
每一类用户的权限由三位组成
权限的8进制表示法:
0 000 --- 无权限
1 001 --x 可执行、
2 010 -w- 可写
3 011 -wx 写和执行
4 100 r-- 只读
5 101 r-x 读和执行
6 110 rw- 读写
7 111 rwx 读写执行
eg: 755表示 rwxr-xr-x
属性管理命令:
#chown: (管理员命令)改变文件或目录属主
#chown USERNAME file....
#chown [USERNAME]:GROUPNAME file: 修改文件属主和属组,GROUPNAME前加冒号, USERNAME为可选项
-R:修改目录及其内部文件的属性
--reference=/path.../fiel1 file2: 将file2的属性改为file1的属性(属主属组均改变)
#chgrp: 修改文件的属组
#chgrp GROUPNAME file
-R: 递归修改属性
--reference=file1 file2: 修改file2的属性为模板file1的属性
权限管理命令:
chmod: 修改文件权限
修改三类用户的权限:
chmod MODE file,...
-R: 递归修改
--reference=file1 file2...
修改某类或某些类用户(u,g,o,a)权限:
chmod u=rwx file,...
chmod u=rwx g=rwx file
chmod ug=rwx file
修改某类用户的某位或某些位权限
chmod 用户类别+r file
chmod 用户类别-w file
chmod u+x,g-x file
chmod u-wx file
umask: 遮罩码
创建文件的默认权限为666-umask,目录的默认权限为777-umask
umask 数字 :设置umask值
站在用户登录的角度来说,shell的类型:
登录式shell:
读取路径:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/bashrc --> /etc/bashrc
正常通过某终端登录
su - USERNAME
su -l USERNAME
非登录式shell:
读取路径:~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
su USERNAME
图形终端下打开命令窗口
自动执行的shell脚本
bash 的配置文件
全局配置:
/etc/profile, /etc/profile.d/*.sh, /etc/bashrc
个人配置:
~/.bash_profile, ~/.bashrc
profile 类:
设定环境变量
运行命令或脚本
bashrc类:
设定本地变量
定义命令别名
UID:用户ID号 /etc/passwd 是其数据库(信息库)
GID:组ID /etc/group 是其数据库(信息库)
影子文件(密码加密存放文件):/etc/shadow, /etc/gshadow
用户类别:
管理员(UID为0)
普通用户(UID为1-65535)
系统用户(1-499)
一般用户(500-65535)
用户组:
管理员组
普通组
系统组
一般组
私有组: 创建一个用户时若未指明其组,则会给该用户创建一个与用户同名的私有组
每一个用户至少属于一个组,即至少在私有组
基本组:用户的默认组
附加组: 基本组以外的其他组
#cat /etc/passwd 的显示字段含义:
account、passwd、UID、GID(基本组ID)、GECOS(可选注释信息)、HOME DIR(家目录)、SHELL(用户默认shell)
#cat /etc/shadow的显示字段含义:
account、加密密码、days(从1970年1月1号到上次密码修改所经过的天数)、days(密码最短使用时间)、(密码最长使用时间)、days(离密码过期剩的天数)、days(密码过期后离账户锁定还剩的天数)、days(账户有效期,从1970.1.1算起)
#cat /etc/group 的显示字段含义
组名、密码占位符、组ID、以此组为附加组的用户列表
useradd USERNAME: 增加用户
属性由 /etc/default 决定
#passwd USERNAME:修改普通用户密码
groupadd GROUPNAME:添加组
用户管理命令
useradd:创建用户
useradd [options] USERNAME
-u 指定UID
-g 指定GID 或一个已存在的基本组
-G GID... 指定附加组(可以有多个,用逗号隔开)
-c “comment” 指定注释信息
-d /path/... 指定某个目录为用户的家目录(若不指定,默认在/home下创建一个与用户同名的家目录)
-s 指定shell 的路径
-m 强制为用户创建一个家目录(-k一起使用,将/etc/skel中的文件复制到创建的家目录)
-M 不为用户创建家目录
-r :添加一个系统用户
创建用户的配置文件 :/etc/login.defs
注:/etc/shells 指定了当前系统可用的安全shell
不让用户登录,可设shell路径为 /sbin/nologin
SHELL 变量保存当前用户的默认shell
id USERNAME:查看用户的账号属性信息
-u(只看UID)、-g(查看基本组的组ID)、-G(所属所有组的组ID)
-n(显示名称而非ID号,与-u 、-g、 -G一起使用)
finger USERNAME:检索用户的账号信息
userdel:删除用户
userdel [option] USERNAME
userdel :不删除用户的家目录
-r: 删除用户同时删除其家目录
修改用户账号属性:
usermod
-u, -g, -G(覆盖原有附加组,加-a选项为追加附加组),-c, -d(指定新家目录,与-m一起使用为移动此前家目录的文件至新家目录),-s, -l(loginname,修改用户名), -L(锁定账号), -U(解锁账号)
chsh: change shell, 修改用户默认shell
chfn: 修改注释信息
chage
-d: 最近一次的修改时间;-E: 过期时间;-I:非活动时间;-m: 最短使用期限;-M:最长使用期限;-W:警告时间
密码管理
passwd [USERNAME]
--stdin: 从标准输入读取
-l : 锁定用户账号
-u: 解锁账号
-d: 删除用户密码(无法登录)
pwck: 检查密码完整性
组管理:
groupadd
-g:指定GID
-r: 添加系统组
groupmod
-g GID
-n GROUPNAME
groupdel
gpasswd [GROUPNAME] :给组设定密码
newgrp :切换基本组(切换到其他无属组需要密码,退出为exit)
newgrp GROUPNAME <----> exit
手动创建用户:
1.编辑 /etc/passwd 文件,添加用户基本信息;
2.将 /etc/skel 复制到 /home/USERNAME;
3.编辑 /etc/shadow 文件,添加加密密码。