用户及权限管理

2018-05-23  本文已影响0人  Hye_Lau

一. 基本概念

1. 用户与用户组

2. Linux用户和组相关配置文件(不要随意删除以下3个文件)

(1) /etc/passwd:该文件记录用户及其属性信息(名称、UID、基本组ID等等)

name:用户名
password:可以是加密的密码,也可以是占位符x
UID:用户ID号
GID:用户所属的主组的ID号
GECOS:注释信息
directory:用户的家目录
shell:用户的默认shell,登录时默认shell程序;

(2) /etc/group:组及属性信息

(3) /etc/shadow:用户密码及其相关属性

3. Linux用户和组的分类

(1) Linux上的用户UID分类:

系统用户:1-499(CentOS6),1-999(CentOS7)

登录用户:500-60000(CentOS6),1000-60000(CentOS7)

(2) Linux组GID分类:

系统组:1-499(CentOS6),1-999(CentOS7)

非系统组:500-60000(CentOS6),1000-60000(CentOS7)

二. 用户管理的相关命令

1. 用户管理命令

(1) Useradd:创建用户

命令格式

Useradd [选项] user_name

常用选项

-u UID:指定UID;
-g GROUP:指定基本组ID,此组得事先存在;
-G GROUP1,GROUP2,...,GROUPN:指明用户所属的附加组,多个组
之间用逗号分隔;
-c “”:指明注释信息
-s SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件;
-d /path/to/dir:以指定的路径为用户的家目录;
通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户创建环境配置文件;
-r:创建系统用户;创建用户时的诸多默认设置配置文件为/etc/login.defs
-D:表示修改用户默认的选项;修改的是/etc/default/useradd文件中;

实例

//指定用户UID
[root@localhost ~]# useradd -u 4000 user_u
user_u:x:4000:5002::/home/user_u:/bin/bash

//指定用户GID
[root@localhost ~]# useradd -g 4001 user_g
useradd: group '4001' does not exist
[root@localhost ~]# useradd -g 5002 user_g
user_g:x:4016:5002::/home/user_g:/bin/bash
 注意:如果不指定基本组,基本组默认与用户名相同(ID),如上;

[root@localhost ~]# useradd -g 2018 distro
distro:x:4017:2018::/home/distro:/bin/bash

[root@localhost ~]# useradd -u 1005 -g 2018 mandriva
mandriva:x:1005:2018::/home/mandriva:/bin/bash

//指明用户所属的附加组
[root@localhost ~]# useradd -u 2002 -g 2018 -G 5001 slackware
slackware:x:2002:2018::/home/slackware:/bin/bash
peguin:x:5001:slackware

//指定用户的家目录
[root@localhost ~]# useradd -u 1100 -d /home/linux mageia
mageia:x:1100:1100::/home/linux:/bin/bash

(2) usermod命令:修改用户属性

命令格式

usermod [选项] 登录

常用选项:

-u UID:修改用户的ID为此处指定的新UID;
-g GROUP:修改用户所属的基本组
-G GROUP1,...,GROUPN:修改用户所属的附加组;原来的附加组会被覆盖;
-a:与-G一同使用,用于为用户追加新的附加组;
-c COMMENT:修改注释信息;
-d HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;
-m:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;
-l NEW_LOGIN:修改用户名;
-s SHELL:修改用户的默认shell;
-L:锁定用户密码;即在用户原来的密码字符串之前添加一个“!”;
-U:解锁用户的密码;

实例

//修改用户的默认shell
[root@localhost ~]# usermod -s /bin/tcsh slackware
slackware:x:2002:2018::/home/slackware:/bin/tcsh

//新增用户附加组
[root@localhost ~]# usermod -aG 5003 slackware
peguin:x:5001:slackware
admins:x:5003:slackware

(3) userdel命令:删除用户

命令格式

userdel [选项] 登录

常用选项

-r:删除用户时一并删除其家目录;

实例

//删除用户,但是保留其家目录
[root@localhost ~]# userdel mandriva
[root@localhost ~]# cd /home
[root@localhost home]# ls
distro  gentoo   linux   mandriva   user_G   user_g slackware  

//删除用户,连同其家目录一起删除
[root@localhost ~]# ls
[root@localhost ~]# userdel -r user_G
[root@localhost home]# ls
distro  gentoo   linux    mandriva    user_g    slackware  

(4) passwd:修改用户自己的密码;

命令格式

Passwd [选项] USERNAME:修改指定用户的密码,但仅root有此权限;

常用选项

-l,-u:分别是用来锁定和解锁用户;
-d:清除用户密码串;
-e DATE:过期期限,日期;
-i DAYS:非活动期限;
-n DAYS:密码的最短使用期限;
-x DAYS:密码的最长使用期限;
-w DAYS:警告期限;
--stdin:从标准输入接受用户密码;   

实例

[root@localhost ~]#  echo "dlutedu" |passwd --stdin mageia
更改用户 mageia 的密码 。
passwd: 所有的身份验证令牌已经成功更新。

(5) id命令:显示用户的真实和有效ID;

命令格式

id [OPTION]... [USERNAME]

命令选项

-u:仅显示有效的UID;
-g:仅显示用户的基本组ID;
-G:仅显示用户所属的所有组的ID;
-n:显示名字而非ID;

(6) su命令:switch user

非登录式切换:不会读取目标用户的配置文件进行初始化

注意:管理员可无密码切换至其它任何用户;

-c 'COMMAND' :仅以指定用户的身份运行此处指定的命令;

(7) gpasswd命令:

命令格式

 gpasswd [选项] group

常用选项

-a USERNAME:向组中添加用户;
-d USERNAME:从组中删除用户;

(8) newgrp命令:临时切换指定的组为基本组;

命令格式

newgrp [-] [group]

常用选项

-:会模拟用户重新登录以实现重新初始化其工作环境;

2. 用户组管理命令

(1) groupadd命令:添加组

命令格式

groupadd [选项] group_name

常用选项

-g GID:指定GID:默认是上一个组的GID+1;
-r:创建系统组;

实例

[root@localhost ~]# groupadd -g 1000 test1
test1:x:1000:

(2) groupmod命令:修改组属性

命令格式

groupmod [选项] GROUP

常用选项

-g GID:修改GID;
-n new_name:修改组名;

实例

[root@localhost ~]# groupmod -g 10001 -n lucky test1
lucky:x:10001:

(3) groupdel命令:删除组

命令格式

groupdel [选项] GROUP

三. 权限管理

1. ls –l

rwx rwx rwx:
左三位:定义user(owner)的权限
中三位:定义group的权限
右三位:定义other的权限

进程安全上下文:
进程对文件的访问权限应用模型:

实例

-rwxr-xr-x. 1 root root 884 5月 2 04:27 inittab
User权限:rwx  group权限:-xr  other权限:--x

2. 权限:

(1) 文件:

(2) 目录:

mode:rwx rwx rwx
ownership:user:group

3. 权限组合机制:

 --- 000   0
 --x 001   1
 -w- 010   2 
 -wx 011   3
 r-- 100   4
 r-x 101   5
 rw- 110   6
 rwx 111   7

四. 文件权限管理命令

1. chmod命令:

命令格式

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...

三类用户:

u:属主(user)   + 加入
g:属组(group)  - 除去
o:其它(others) = 设置
a:所有

(1) chmod [OPTION]... MODE[,MODE]... FILE...

MODE表示法

u=
g=
o=
a=
u+,u-
g+,g-
o+,o-
a+,a-

(2) chmod [OPTION]... OCTAL-MODE FILE...

(3) chmod [OPTION]... --reference=RFILE FILE...

常用 选项:

 -R:递归修改,即连同子目录下的所有文件都会更改;
注意:用户仅能够修改属主为自己的那些文件的权限;

实例

//第二种格式修改文件权限
[root@localhost ~]# ls -al myfirst.sh
-rw-r--r--. 1 root root 28 5月   3 03:17 myfirst.sh
[root@localhost ~]# chmod 777 myfirst.sh
[root@localhost ~]# ls -al myfirst.sh
-rwxrwxrwx. 1 root root 28 5月   3 03:17 myfirst.sh  
  
//赋权表示法
[root@localhost ~]# chmod u=rwx,go=rx myfirst.sh 
[root@localhost ~]# ls -al myfirst.sh 
-rwxr-xr-x. 1 root root 28 5月   3 03:17 myfirst.sh

//授权表示法
[root@localhost ~]# chmod a+w myfirst.sh 
[root@localhost ~]# ls -al myfirst.sh 
-rwxrwxrwx. 1 root root 28 5月   3 03:17 myfirst.sh

[root@localhost ~]# chmod a-x myfirst.sh 
[root@localhost ~]# ls -al myfirst.sh 
-rw-rw-rw-. 1 root root 28 5月   3 03:17 myfirst.sh

2. chown命令:

命令格式

 chown [OPTION]... [OWNER][:[GROUP]] FILE...
 chown [OPTION]... --reference=RFILE FILE...

常用选项:

-R:递归

实例

//将install.log的所有者改为bin
[root@localhost ~]# chown bin install.log
[root@localhost ~]# ls -al install.log
-rw-r--r--. 1 bin test 24772 7月   2 2017 install.log

//将install.log的所有者与用户组改回为root
[root@localhost ~]# chown root:root install.log
[root@localhost ~]# ls -al install.log
-rw-r--r--. 1 root root 24772 7月   2 2017 install.log

3. chgrp命令:

命令格式

chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...

实例

[root@localhost ~]# chgrp users install.log
[root@localhost ~]# ls -al install.log
-rw-r--r--. 1 root users 24772 7月   2 2017 install.log
[root@localhost ~]# chgrp testing  install.log
chgrp: 无效的组:"testing"
上一篇 下一篇

猜你喜欢

热点阅读