Linux的用户和组管理
Linux的用户有两种,分别是系统管理员和普通用户,其中普通用户又分为系统用户和登陆用户;
系统用户
:系统用户从不登陆系统,是用来执行某些进程服务的账号
登陆用户
:用户通过输入账号密码登陆
用户创建时系统至少会为其分配两个id号,一个是用户id即UID
,一个是组id,即GID
。
普通用户登陆是是通过输入账号密码进行登陆,Linux系统识别的并不是账号,而是识别用户创建时系统分配的用户id号即UID,其中UID
分类如下:
系统管理员
:root,其id号是0;
普通用户
:id为1-65535
系统用户id:1-499(centOS 6),1-999(centOS 7)
登陆用户id:500以上(centOS 6),1000以上(centOS 7)
GID分类与UID差不多:
系统管理员
:root,其id号是0;
普通用户
:id为1-65535
系统组id:1-499(centOS 6),1-999(centOS 7)
非系统组id:500以上(centOS 6),1000以上(centOS 7)
一个用户可以属于多个组,分别为主组和附加组,主组名与用户名相同,主组以外的组就是附加组。但是一个用户只能有唯一一个UID号。
相关的配置文件:
/etc/passwd:用户账号的相关信息
/etc/group:用户组的相关信息
/etc/shadow:用户密码相关信息,加密后存放
/etc/gshadow:用户组密码的相关信息
useradd
-
添加用户
- -u:创建用户时指定其uid
- -g:创建用户时指定其基本id,此组要事先存在
- -c:创建用户时给用户添加附加组,多个组用逗号隔开
- -d:创建用户时指定其家目录,通过复制/etc/skel并重命名实现,指定的家目录如果事先存在则不会为用户复制huanj环境配置文件
- -s:创建用户时指定其默认shell
- -r:创建系统用户
- useradd -D:显示创建用户时的默认配置
- useradd -D:选项:修改默认配置 useradd -D -s /bin/csh 修改默认shell为csh
- 修改结果保存在/etc/default/useradd中
usermod
-
修改用户属性信息
- -u:修改用户的uid
- -g:修改用户所属的基本组
- -G: 修改用户所属的附加组,原来的附加组会被覆盖
- -a:用于给用户追加新的附加组,与-G一同使用
- -c:修改注释信息
- -d:修改用户的家目录,原有的家目录不会被移动至新的家目录
- -m:与-d一同使用,将原有的家目录移动至新的家目录
- -l:修改用户名
- -s:修改用户默认的shell
- -L:锁定用户的密码,即在原来用户的密码字符串前加上‘!’
- -U:解锁用户的密码
userdel
-
删除用户
- -r:删除用户时连同家目录一起删除
passwd
-
修改用户密码
- passwd username:修改指定用户的密码,仅root有此权限
- -l,-u:锁定和解锁用户密码
- -d:清除用户密码
- -e DATE:过期期限
- -i DATE: 非活动期限
- -n DATE:密码最短使用期限
- -x DATE:密码最长使用期限
- –stdin:echo “passwd” | passwd –stdin USERNAME 通常在写脚本是会以此方式给用户添加密码
groupadd
-
添加组
- -g:创建组时指定组id,默认是上一个GID+1
- -r: 创建系统组
groupmod
-
修改组信息
- -g:修改GID
- -n:修改组名
groupdel
-
删除组
- groupdel [OPTION] groupname
gpasswd
-
设置组密码
- 用法:gpasswd group
- -a USERNAME:在组中添加用户
- -d USERNAME:在组中移除用户
id
-
显示用户相关id号信息
- -u:显示用户有效的UID
- -G:显示用户所属的所有组id
- -g:显示用户的GID
- -n:显示用户的名字
su
-
切换用户
- su USERNAME:以非登录式的方式切换用户,不会读取用户的配置信息
- su – USERNAME:以登录的方式切换用户,读取用户的配置信息
- su USERNAME -c ‘COMMMAND’:以用户‘USERNAME’的身份执行‘COMMAND’
chage
-
更改用户密码过期信息
- chage [option] 登录名
newgrp
-
临时切换到指定组为基本组
- newgrp [-] [group]
- -:会模拟用户重新登录以实现重新初始化其工作环境
目录或文件权限管理
文件或者目录的权限可通过ls -l命令查看;一般文件属于三类用户,分别是u(属主),g(属组),o(其他用户)
例如:drwxr-xr-x 3 user group 102 Mar11 22:56 Filename
drwxr-xr-x
- d:文件类型,d代表该文件为为目录
- rwx:文件对应属主的权限,r:可读,w:可写,x:可执行
- r-x:文件对应属组的权限,r:可读,-:不可写,x:可执行
- r-x:文件对其他用户的权限,r:可读,-:不可写,x:可执行
chmod
-
修改文件或目录的权限
- 用法:chmod [option] mode[mode] file
赋权表示法
:操作一类用户的所有权限- 例: chmod u=rwx file chmod a=rwx file
授权表示法
:操作一类用户的一个权位- 例:chmod u+r file chmod g-r file
- option: -R 递归修改
- 参考其他文件的属性修改目标文件:
- chmod [option] …–reference=RFILE(参考的文件) file(目标文件)
chown
-
修改文件的属主属组
- 用法:chown [option]…[owner][:group] file
- 参考其他文件的属性修改目标文件:
- chown [option] …–reference=RFILE(参考的文件) file(目标文件)
- 选项:-R 递归修改,目录下的文件也一同修改
chgrp
-
修改文件的属主属组
- 用法:chgrp [option]…[owner][:group] file
- 参考其他文件的属性修改目标文件:
- chgrp [option] …–reference=RFILE(参考的文件) file(目标文件)
umask
-
文件权限的反向掩码,遮掩码
- 文件默认权限:666减去mask
- 目录默认权限:777减去mask
-
注:文件默认权限使用666减去mask是因为文件本身不能有执行权限,如果减的结果中有执行权限则需要将其加一
- 例如:umask是023
- 此时666减去023得643,有执行权限,则将其加一变成644
- umask:查看当前umask
- umask UMSK:设置umask
-
注:此类设置只对当前shell进程有效
mktmp
-
创建临时文件
- 用法:mktmp [option] [template]
- 选项:-d 创建临时目录
- 例如:mktmp file.XXX , 其中XXX用来生成随机字符
ps:
Linux系统文件类型
通过ls -l命令查看:
- -:常规文件
- d:目录文件
- b:块设备文件
- c:字符设备文件
- l:链接文件
- p: 命令管道
- s:套接字文件
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91629