Linux用户管理与权限

用户管理与权限

实验目的:

掌握用户与组管理

掌握高级权限的使用

掌握访问控制列表

 

实验步骤:

步骤一、用户管理

创建用户useradd的几个参数:

-c描述

-d 家目录

-u uid号

-g  私有组

-G  把这个用户附加到其它组中去

-s shell环境变量  /bin/bash  /sbin/nologin它无法登陆到本地,远程用户可以

 

创建一个用户user2,我们怎么样知道我们创建了user 2了呢?Id一下用户

[root@freeit ~]# useradd  user2

[root@freeit ~]# id  user2

uid=1001(user2)  gid=1001(user2)  组=1001(user2)

 

我们也可以查看用户的配置文件/etc/passwd,里面记载这所有用户的信息

[root@freeit ~]#vim /etc/passwd

在/etc/passwd下,有三种用户:

第一种:超级管理员root,uid为0

第二种:系统服务用户,uid为1~999

第三种:(红帽7)普通(本地)用户,uid为1000往后

我们的红帽6系统服务用户uid是1-499.

 

Usermod 修改服务用户

Userdel –r 删除服务用户

-r参数:

创建一个用户或组大概会在这六个地方创建信息

/etc/passwd /etc/shadow  /etc/group  /etc/gshadow

/home    /var/spool/mail

不添加-r参数删除,会删除这些/etc/passwd  /etc/shadow  /etc/group /etc/gshadow配置信息,但不删除/home     /var/spool/mail这两个配置信息

添加-r参数删除会删除所有的配置信息

 

 

步骤二、组管理

创建一个dongshihui组,对这个组设置一个密码

[root@freeit ~]#groupadd   dongshihui

[root@freeit ~]#gpasswd   dongshihui

正在修改 dongshihui 组的密码

密码:


 

切换到普通用户user1上,把user1加入到dongshihui组中

[root@freeit ~]#   su -  user1

ABRT has detected 1 problem(s). For moreinfo run: abrt-cli list

[user1@freeit ~]$ newgrp   dongshihui

密码:

[user1@freeit ~]$ id

uid=1000(user1) gid=1002(dongshihui) 组=1000(user1),1002(dongshihui)环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

[user1@freeit ~]$

 

Groupdel  -r删除组

 

 

步骤三、高级权限

SUID权限:

SUID权限仅仅只对可执行文件(命令文件)有效,对普通文件无意义,只出现在第三位,如果一个可执行文件有SUID权限,那么其它用户在执行这个可执行文件过程时会临时拥有这个可执行文件的所有者权限

[root@freeit mnt]# ll /bin/ls

-rwxr-xr-x. 1 root root 117616 1月  25 2014 /bin/ls

[root@freeit mnt]# ls  -ld /root

dr-xr-x---. 14 root root 4096 5月   4 16:56 /root

[root@freeit mnt]# su  - user1

上一次登录:一 5月  4 17:15:44 CST 2015pts/0 上

[user1@freeit ~]$ ls  /root

ls: 无法打开目录/root: 权限不够

[user1@freeit ~]$ touch  /root/user1

touch: 无法创建"/root/user1":权限不够

[user1@freeit ~]$ exit

登出

[root@freeit mnt]# chmod  u+s /bin/ls

[root@freeit mnt]# chmod  u+s /bin/touch

[root@freeit mnt]# ll /bin/ls

-rwsr-xr-x. 1 root root 117616 1月  25 2014 /bin/ls

[root@freeit mnt]# ll /bin/touch

-rwsr-xr-x. 1 root root 62432 1月  25 2014 /bin/touch

[root@freeit mnt]# su  - user1

上一次登录:一 5月  4 17:19:35 CST 2015pts/1 上

[user1@freeit ~]$ ls  /root

anaconda-ks.cfg  test1  公共  模板  视频  图片  文档  下载  音乐  桌面

[user1@freeit ~]$ touch  /root/test1

[user1@freeit ~]$ ll /root

总用量 4

-rw-------. 1 root root  1503 4月  27 17:37 anaconda-ks.cfg

-rw-rw-r--. 1 root user1    0 5月   4 17:21 test1

drwxr-xr-x. 2 root root     6 4月  27 09:47 公共

drwxr-xr-x. 2 root root     6 4月  27 09:47 模板

drwxr-xr-x. 2 root root     6 4月  27 09:47 视频

drwxr-xr-x. 2 root root     6 4月  27 09:47 图片

drwxr-xr-x. 2 root root     6 4月  27 09:47 文档

drwxr-xr-x. 2 root root     6 4月  27 09:47 下载

drwxr-xr-x. 2 root root     6 4月  27 09:47 音乐

drwxr-xr-x. 2 root root     6 4月  27 09:47 桌面

 

 

SGID权限:

SGID权限仅仅只对可执行文件(命令文件)有效,对普通文件无意义,只出现在第6位,如果一个可执行文件有SGID权限,那么其它用户在执行这个可执行文件过程中会临时拥有这个可执行文件的所属组权限。

[root@freeit mnt]# ll  /bin/ls

-rwxr-xr-x. 1 root root 117616 1月  25 2014 /bin/ls

[root@freeit mnt]# chmod   g+s /bin/ls

[root@freeit mnt]# ll /bin/ls

-rwxr-sr-x. 1 root root 117616 1月  25 2014 /bin/ls

[root@freeit mnt]# su  - user1

上一次登录:一 5月  4 17:20:57 CST 2015pts/1 上

[user1@freeit ~]$ ls  /root

anaconda-ks.cfg  test1  公共  模板  视频  图片  文档  下载  音乐  桌面

 

 

sticky权限:

t权限仅仅只对目录有效,对任何文件无意义!只出现在第9位!

如果一个目录有t权限,那么只有文件所有者和root用户才能删除文件,其它用户无法执行删除文件的操作!

 

假如/tmp 目录权限是rwxrwxrwt

 

 root用户可以在这个目录下创建和删除任何文件!

 但是普通用户user1只能删除自己创建的文件,而不能删除user2用户的文件(即使user1对user2用户的文件的w权限)!

 

 实际应用: 一般用于重要目录设置一个t权限.这样可以防止误删除文件.

 

 

 [root@freeit mnt]# ls  -ld /tmp

drwxrwxrwx. 18 root root 4096 5月   4 17:46 /tmp

[root@freeit mnt]# chmod   o+t /tmp

[root@freeit mnt]# ls  -ld /tmp

drwxrwxrwt. 18 root root 4096 5月   4 17:46 /tmp

[root@freeit mnt]# cd /tmp

[root@freeit tmp]# su  user1

[user1@freeit tmp]$ touch  user1

[user1@freeit tmp]$ su  user2

密码:

[user2@freeit tmp]$ touch  user2

[user2@freeit tmp]$ ll

-rw-rw-r--. 1 user1 user1   0 5月   4 17:59 user1

-rw-rw-r--. 1 user2 user2   0 5月   4 18:00 user2

 [user2@freeit tmp]$ rm -rf  user1

rm: 无法删除"user1":不允许的操作

 

步骤四、文件访问控制列表

传统权限设置无法针对单个用户来设置权限!

FACL(File AccessControl  List)就是对传统权限的补充,可以实现针对单个用户做单独权限设置

getfacl  file|dir    查看这个文件或目录的权限(针对单个用户的)

setfacl -m  u|g|o|a:username|groupname:r|w|x  file|dir 设置权限

 

在/tmp目录下有个test文件,设置user1组用户有rwx权限,user1用户有rw权限,user2用户有r权限,如果做了?

[root@freeit /]# cd /tmp

[root@freeit tmp]# touch  test

[root@freeit tmp]# ll

总用量 0

-rw-r--r--. 1 root root 0 5月   8 11:22 test

[root@freeit tmp]# getfacl   test

# file: test

# owner: root

# group: root

user::rw-

group::r--

other::r—

 

可以看到getfacl查看的权限就是传统权限,只不过换了个形式,现在我们对test文件设置下访问控制列表,再来查看。

[root@freeit tmp]# setfacl  -m  g:user1:rwx  test

[root@freeit tmp]# setfacl  -m u:user1:rw  test

[root@freeit tmp]# setfacl  -m u:user2:r  test

[root@freeit tmp]# getfacl  test

# file: test

# owner: root

# group: root

user::rw-

user:user1:rw-

user:user2:r--

group::r--

group:user1:rwx

mask::rwx

other::r--

 

用getfacl查看的权限其中既有传统权限又有Facl权限

 

注意事项:

在红帽6系统中,后来创建的分区时ext4格式的,这个分区时不带Facl功能的

在红帽7系统中,分区只要时xfs格式的,这些分区都会带Facl功能的

 

步骤五、权限委派

权限委派就是将一部分功能委派给其它人

 

查看/home,发现只有student一个用户,切换student用户下,useradd234用户,权限拒绝

[root@desktop30 Desktop]# cd /home

[root@desktop30 home]# ls

student

[root@desktop30 home]# su  student

[student@desktop30 home]$ useradd  234

bash: /usr/sbin/useradd: Permission denied

 

 

修改/etc/sudoers文件,使得student用户有执行useradd命令的权限

[root@desktop30 Desktop]# vim  /etc/sudoers

## Next comes the main part: which userscan run what software on

## which machines (the sudoers file can beshared between multiple

## systems).

## Syntax:

##

##     user    MACHINE=COMMANDS

##

## The COMMANDS section may have otheroptions added to it.

##

## Allow root to run any commands anywhere

root   ALL=(ALL)       ALL

student  ALL=(ALL)      /usr/sbin/useradd 委派给student用户有执行useradd命令的权限

 

 

修改了/etc/sudoers文件,赋予student有执行useradd命令的权限

[student@desktop30 home]$ useradd  234

bash: /usr/sbin/useradd: Permission denied   为什么还是权限拒绝?

[student@desktop30 home]$ sudo  useradd  234  权限委派在执行的时候前面一定要加一个sudo命令,否则是无效的

 

We trust you have received the usuallecture from the local System

Administrator. It usually boils down tothese three things:

 

   #1) Respect the privacy of others.

   #2) Think before you type.

   #3) With great power comes great responsibility.

 

[sudo] password for student:           输入student用户的密码

[student@desktop30 home]$

[student@desktop30 home]$ ls   

234  student  

student用户创建用户234成功,成功委派了用户student有创建用户的权限


你可能感兴趣的:(Linux)