用户及权限管理

一. 基本概念

1. 用户与用户组

  • 文件所有者:user

  • 用户组概念:group

  • 其他人的概念:others

    注意:在Linux里面,任何一个文件都具有“user,group及others”3种身份的个别权限

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

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

  • root用户:root:x:0:0:root:/root:/bin/bash

  • 普通用户:gentoo:x:4001:4001::/home/gentoo:/bin/bash

  • 字段含义:name:passwd:UID:GID:GECOS:directory:shell

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

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

  • root组:root:x:0: (只有root一个用户)

  • 普通用户组:distro:x:5000:gentoo,gentoo2,gentoo3 (包含gentoo/2/3)

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

3. Linux用户和组的分类

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

  • 管理员:root,0

  • 普通用户:1-65635
    普通用户又分为系统用户和登录用户;

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

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

(2) Linux组GID分类:

  • 管理员组:root,0
  • 普通组:1-65635
    普通组又分为系统组和非系统组(普通组)
系统组: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

  • 登录式切换:会通过重新读取用户的配置文件来重新初始化
    su - USERNAME
    su -l USERNAME

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

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

-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的权限

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

  • 进程的属主与文件的属主是否相同;如果相同,则应用属主权限;
  • 否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组权限;
  • 否则,就只能应用other的权限;

实例

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

2. 权限:

  • r:read,读
  • w:write,写
  • x:excute,执行

(1) 文件:

  • r:可获取文件的数据;
  • w:可修改文件的数据;
  • x:可将此文件运行为进程

(2) 目录:

  • r:可使用ls命令获取其下的所有文件列表;
  • w:可修改此目录下的文件列表;即创建或删除文件
  • x:可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息;
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

四. 文件权限管理命令

  • chmod:改变文件的权限;
  • chown:改变文件所有者;
  • chgrp:改变文件所属用户组;

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=
  • 授权表示法:直接操作一类用户的一个权限位:r,w,x;
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"
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容