在Linux中利用用户来实现多任务操做,不一样的用户能够同时使用系统,而且对系统进行操做;Linux是一个等级森严的系统,不一样的用户对系统上文件操做的权限不一样,为了方便管理,对用户进行分组,属于不一样组的用户对文件的操做的权限也不一样。Linux系统利用不一样的ID来标识惟一的用户,一样利用不一样的ID来标识不一样的组。shell
管理员:0 普通用户 系统用户:为了可以让后台进程或者服务类型进程以非管理员的身份运行,一般要为此建立多个普通用户,这类用户从不用登录系统。1-499(CentOS6), 1-999(CentOS7) 登录用户:500-60000(CentOS6), 1000-60000(CentOS7)
管理员组:0 普通用户组 系统组:1-499(CentOS6), 1-999(CentOS7) 登录组:500-60000(CentOS6), 1000-60000(CentOS7) 组类别2 用户的基本组 用户的附加组 组类别3 私有组:组名同用户名,且只包含一个用户 公共组:组内包含了多个用户
Linux系统经过名称解析将用户名组名解析成对应的惟一标识,以此来验证用户的身份以及该用户属于哪一个组。加密
和用户相关的文件:code
name:passwd:UID:GID:GESOS:directory:shell name: 用户名 passwd: 能够是加密的密码,也能够是占位符x UID: GID: 用户所属的主组的ID号 GESOS: 注释信息 directory: 用户的家目录 shell: 用户的默认shell,登陆时默认shell程序
用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过时期限:保留字段
group_name:password:GID:user_list user_list: 该组的用户成员,以此组为附加组的用户列表
组密码的做用:当一个用户切换其基本组的时候,若是该组不属于用户的附加组,此时,若是该组设定了组密码,那么该用户知道该组的密码时就能够临时将该组切换成其基本组;若是这个组没有设定组密码,那么该用户不能切换至该组。递归
以前说过Linux是一个等级森严的系统,一个文件或者目录对于不一样的用户有不一样的权限,这个权限主要有r,w,x(可读、可写、可执行),对于文件和目录这三个权限的做用是不一样的:进程
文件: r: 可获取文件的数据; w: 可修改文件的数据; x: 可将文件运行为进程; 目录: r: 可以使用ls命令获取其下的全部文件列表(不包括详细信息) w: 可修改此目录下的文件列表;即建立或删除文件; x: 可cd到此目录中,且可以使用ls -l来获取全部文件的详细属性信息; 一个文件或者目录的权限主要是对于该文件或目录的属主、属组以及其余用户来讲,利用ls -l能够查看一个文件对于属主、属组和其余用户的权限
那么Liunx系统怎么让一个文件的权限起做用呢?字符串
做为用户来操做一个文件,该用户必须发起一个进程,而这个进程是以该用户的身份运行的,因此系统会查看进程的属主(发起进程的用户)与文件的属主是否相同,若是相同,则应用属主权限;不然,则检查进程的属主是否属于文件的的属组,若是是,则应用属组权限;不然,就只能应用其余用户的权限。此过程为进程对文件访问权限应用模型。rpc
(1) useradd命令:建立用户it
useradd [option] 登录名 -u UID: 指定UID; -g GROUP: 指定基本组ID,此组事先要存在; -G GROUP1[,GROUP2…]: 指明用户所属的附加组,多个组之间用逗号分隔; -c COMMENT: 指定用户的注释信息; -d HOME_DIR: 以指定的路径为用户的家目录;经过复制/etc/skel此目录并重命名实现;指定的家目录路径若是实现存在,则不会为用户复制环境配置文件; -s SHELL: 指定用户的shell,全部可用的shell存储在/etc/shells文件中; -r: 建立系统用户; 注意:建立用户时的诸多默认选项设定的配置文件为/etc/login.defs
(2) usermod命令:修改用户属性io
usermod [option] username -u UIG: 修改用户的UID; -g GROUP: 修改用户所属的基本组; -G GROUP1[,GROUP2…]: 修改用户所属的附加组;原来的附加组会被覆盖; -a: 与-G一同使用,用于为用户追加新的附加组; -c COMMENT: 修改注释信息; -d HOME_DIR: 修改用户的家目录;用户原有的文件不会被转移至新的位置; -m: 与-d一同使用,用于将原有的家目录移动为新的家目录; -l NEW_LOGIN: 修改用户名; -s SHELL: 修改用户默认shell; -L: 锁定指定用户密码;即在用户原来的密码字符串以前添加一个”!”; -U: 解锁指定用户密码;
(3) userdel命令:删除指定用户mariadb
userdel [option] username -r: 删除用户时一并删除其家目录;默认不删除用户的家目录;
(4) passwd命令:用户密码管理命令
passwd: 修改用户本身的密码 passwd USERNAME: 修改指定用户的密码,但仅root有此权限; -l, -u: 锁定和解锁用户; -d: 清除指定用户的密码; -e DATE: 过时期限,日期; -i DAYS: 非活动期限;天数 -n DAYS: 密码的最短使用期限; -x DAYS: 密码的最长使用期限; -w DAYS: 密码警告期限; --stdin: echo “PASSWORD” | passwd –stdin USERNAME
groupadd, groupdel, groupmod, gpasswd
(1) groupadd命令: 添加组
groupadd [option] group_name -g GID: 指定GID;默认是上一个组的GID+1 -r: 建立系统组
(2) groupmod命令:修改组的属性
groupmod [option] GROUP -g GID: 修改GID -n new_groupname: 修改组名
(3) groupdel命令:删除组
groupdel [option] GROUP
(4) gpasswd命令
gpasswd [option] group 不带选项为组添加密码 -u USERNAME: 向组中添加用户; -d USERNAME: 从组中移除用户;
(1) newgrp GROUP: 将GROUP临时切换为用户的基本组
newgrp [-] [group] -: 会模拟用户从新登陆以实现从新初始化其工做环境
(2) chage命令:修改用户密码的过时信息
chage [option] username
(3) chsh命令:修改指定用户的默认shell;
(4) id命令:显示用户真是有效的ID信息
id [option]… [username] -u: 仅显示有效的UID; -g: 仅显示用户所属基本组ID; -G: 显示用户所属的全部组ID; -n: 显示名称而非ID;
(5) su命令:switch user
登陆式切换:会经过读取用户的配置文件来从新初始化 su – USERNAME su -l USERNAME 非登陆式切换:不会读取目标用户的配置文件进行初始化 su USERNAME 注意:管理员可无密码切换至其余任何用户; su -c ‘COMMAND’: 仅以指定用户的身份运行此处指定的命令; su – dabric -c ‘whoami’
(6) finger命令:显示指定用户的信息;
(7) chfn命令:修改用户的信息;
(8) pwck命令:检查指定用户用户密码文件是否异常;
(9) grpck命令:检查指定用户组密码文件是否异常;
chmod命令(用户仅能修改属主为本身的文件)
chmod [OPTION]… MODE[,MODE]… FILE… chmod [OPTION]… OCTAL-MODE FILE… chmod [OPTION]… --reference=RFILE FILE…
(1) chmod [OPTION]… MODE[,MODE]… FILE…
MODE表示法: 赋权表示法:直接操做一类用户的全部权限位 u= g= o= a= 受权表示法:直接操做一类用户的一个权限位r,w,x u+,u- g+,g- o+,o- a+,a-
(2) chmod [OPTION]… OCTAL-MODE FILE…
八进制表示法:
(3) chmod [OPTION]… --reference=RFILE FILE…
引用参考文件的权限来修改当前文件的权限 选项: -R, --recursive: 递归修改(在受权表示法中经常使用)
(1) chown命令:
chown [OPTION]… [OWNER][:[.][GROUP]] FILE… chown [OPTION]… --reference=RFILE FILE… 选项: -R, --recursive: 递归修改
(2) chgrp命令:
chgrp [OPTION]… GROUP FILE… chgrp [OPTION]… --reference=RFILE FILE…
文件:666-umask 目录:777-umask 注意:之因此文件用666去减,表示文件默认不能拥有执行权限,如过减得的结果中有执行权限,则须要将其加1; umask命令: umask: 查看当前umask umask MASK: 设置umask 注意:命令的设定仅对当前shell进程有效;
install命令: install – copy files and set attributes 单源复制: install [OPTION]… [-T] SOURCE DEST 多源复制: install [OPTION]… SOURCE… DIRECTORY install [OPTION]… -t DIRECTORY SOURCE… 建立目录: install [OPTION]… -d DIRECTORY… 经常使用选项: -m, --mode=MODE: 设定目标文件的权限,默认为755 -o, --ownwer=OWNER: 设定目标文件的属主 -g, --group=GROUP: 设定目标文件的属组
mktemp命令:建立临时文件或者临时目录 mktemp [OPTION]… [TEMPLATE] -d: 建立临时目录 mktemp /tmp/mytmp.XXXX 引用该文件名,将其执行的结果保存在变量中使用 注意:mktemp会将建立的临时文件名直接返回,所以,可直接经过命令引用保存至变量中;
完成如下任务