美文网首页
用户及权限管理

用户及权限管理

作者: Hye_Lau | 来源:发表于2018-05-23 21:06 被阅读0次

一. 基本概念

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"

相关文章

  • Jenkins常用插件全集

    用户及权限 Jenkins 用户权限管理是Jenkins Administration中非常很重要的环节,由于大部...

  • 金贝软件管理员操作说明

    一、管理员角色 最高管理权限用户管理(二级用户及普通用户添加、删除,密码修改,清空错题,设置权限)内容管理(修改软...

  • Linux基础入门实验报告二

    一.实验名称 用户及文件权限管理 实验介绍 1.Linux用户管理 (1).查看用户: who [options]...

  • 基于apache搭建subversion服务及管理工具

    理解subversion的权限管理及相关配置 首先svn的权限管理由3个文件配置组成,一个用户及组管理(passw...

  • 用户及权限管理

    一. 基本概念 1. 用户与用户组 文件所有者:user 用户组概念:group 其他人的概念:others注意:...

  • 用户管理及权限

    用户概览 # 用户/组基本概念 Users and groups:. Every process (running...

  • 第三节 用户及文件权限管理

    用户及文件权限管理 一.Linux 用户管理 1.查看用户:请打开终端, 输入命令:$ who am i或者$ w...

  • 用户和权限管理

    用户管理 权限管理 收回权限 查看权限

  • 用户权限及用户管理命令

    自学整理记录,大神见笑 目录 su sudo cat /etc/group groupadd groupdel i...

  • 用户管理

    个人学习笔记-1.用户及组管理 用户、组和权限管理 每个使用者: 用户标识、密码: 认证(Authenticati...

网友评论

      本文标题:用户及权限管理

      本文链接:https://www.haomeiwen.com/subject/mbukjftx.html