用户
关于 useradd 的某些参数:
- -u UID:指定 UID,这个 UID 必须是大于等于500,并没有其他用户占用的 UID
- -g GID/GROUPNAME:指定默认组,可以是 GID 或者 GROUPNAME,同样也必须真实存在
- -G GROUPS:指定附加组
- -c COMMENT:指定用户的注释信息
- -d PATH:指定用户的家目录
-g 基本组:如果没有指定用户组,创建用户的时候系统会默认同时创建一个和这个用户名同名的组,这个组就是基本组,不可以把用户从基本组中删除。在创建文件时,文件的所属组就是用户的基本组。
-G 附加组:除了基本组之外,用户所在的其他组,都是附加组。用户是可以从附加组中被删除的。
用户不论为与基本组中还是附加组中,就会拥有该组的权限。一个用户可以属于多个附加组。但是一个用户只能有一个基本组。
查看所有用户
cat /etc/passwd
添加
useradd xulei -d /home/users/xulei
删除用户及关联的目录
userdel -r xulei
usermod
usermod 命令用于修改用户帐号。
- -c<备注> 修改用户帐号的备注文字。
- -d登入目录> 修改用户登入时的目录。
- -e<有效期限> 修改帐号的有效期限。
- -f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
- -g<主组> 修改用户所属主组。
- -G<群组> 修改用户所属的附加群组。
- -l<帐号名称> 修改用户帐号名称。
- -L 锁定用户密码,使密码无效。
- -s<shell> 修改用户登入后所使用的shell。
- -u<uid> 修改用户ID。
- -U 解除密码锁定。
- -a 代表 append,也就是将用户添加到新用户组中而不必离开原有的其他用户组
将 xulei 添加到 root 组
usermod -g root xulei
如果添加的用户不能通过 ssh 登录,可以查看用户受否有 bash 权限
# 查看所有用户,可以查看用户是否有如下路径
cat /etc/passwd
# 修改用户有 /bin/bash 权限
usermod -s /bin/bash 用户名
# 禁止用户有 /bin/bash 改为 /sbin/nologin
usermod -s /sbin/nologin 用户名
用户组 group
关于组的增加和删除信息会在etc目录的 group文件中找到,命令 cat /etc/group 可以看到自己的分组和分组id,0 表示管理员(root),1 - 500 表示系统用户。
groupadd 命令 语法格式如下:
- -g:指定新建工作组的 id;
- -r:创建系统工作组,系统工作组的组ID小于 500;
- -K:覆盖配置文件 "/ect/login.defs";
- -o:允许添加组 ID 号不唯一的工作组。
- -f,--force: 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与 -g 一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。
查看所有组
cat /etc/group
查看当前组
[xulei@node102 sh]$ groups
xulei
查看用户所属组
[xulei@node102 sh]$ groups root
root : root
删除组
groupdel xulei
添加额外组
usermod -a -G 组名称 用户名
文件权限 chown
用来更改某个目录或文件的用户名和用户组。
- user : 新的档案拥有者的使用者 ID
- group : 新的档案拥有者的使用者群体(group)
- -c : 若该档案拥有者确实已经更改,才显示其更改动作
- -f : 若该档案拥有者无法被更改也不要显示错误讯息
- -h : 只对于连结(link)进行变更,而非该 link 真正指向的档案
- -v : 显示拥有者变更的详细资料
- -R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
- --help : 显示辅助说明
- --version : 显示版本
修改 abc 文件的所有者
chown root abc
把目录/demo及其下的所有文件和子目录的所有人改成 root,所属组改成 roota。
chown -R root:roota /demo
chmod
-rwxr--r--. 1 xulei root 98 Sep 7 11:49 arp.sh
-rwxr--r-- 一共10个字符,下面讲解下:
- d 表示目录,如果是 - 表示是一个普通文件。剩余的9个字符,分成3组,每组3个字符,分别表示user/group/others的rwx权限;
- u user 表示拥有者,可以看到拥有者是 xulei 用户,但文件还属于root组,因此xulei还是无法执行该文件。
- g group 表示组,除了mysql这个人的 同一个MySQL组拥有的权力
- o others 就是其他人了,啥权限也没有。
- a 表示“所有(all)用户”。它是系统默认值。
[root@node102 sh]# chmod a+rwx checkLogin.sh
[root@node102 sh]# ll
total 16
-rwxr--r--. 1 xulei root 98 Sep 7 11:49 arp.sh
-rwxrwxrwx. 1 xulei root 353 Jan 19 17:31 checkLogin.sh
-rwxr--r--. 1 root root 123 Sep 7 10:39 nginx_check.sh
-rwxr-xr-x. 1 root root 595 Nov 27 15:15 start.sh