day6总结

主要内容:

useradd与usermod对比

groupadd与groupmod对比

passwd与chage对比

gpasswd与groupmems对比

切换用户

chown与chgrp用法

一般权限与特殊权限

chmod用法


 

useradd创建用户的初始信息存放在/etc/login.defs/etc//default/useradd文件中。

   /etc/login.defs: 设置mail_dir目录、mail_file、密码最短时效,最长时效,警告时间,最小的UID,最大的UID。最大的GID以及最小的GID,是否创建家目录,umask

 

   /etc/default/useradd: 默认shell,家目录,skel目录,是否创建邮件目录。

注:家目录从/etc/skel/文件中复制文件。

 

4个配置文件:

/etc/passwd 用户信息 用户名:密码:用户id:组id:注释:家目录:bash

当用户有附加组时,是否会显示?不会显示,会显示在/etc/group中

/etc/group 组信息    组名:组id:密码:以该组为附加组的用户

/etc/shadow       用户名:密码:最近一次修改时间:最小使用时间:最大使用时间:警告时间

/etc/gshadow  组名:密码:管理员账户:以该组为附加组的用户名。  

 

newusers passwd格式的文件:批量创建用户

chpasswd 批量修改用户密码

 

useradd用法与usermod用法对比

useradd用法

usermod用法

-u   UID

指定新建用户的UID

-u UID 

修改新UID

-g   GID

指定新建用户的GID,必须存在

-g GID

修改新GID

-d HOME_DIR

指定家目录

-d HOME 

修改家目录,-m搬过来

-s  SHELL

指定shell

-s SHELLS

修改shell

-G  grp1,grp2

添加附加组

-l login_name 

新的名字

-N

不创建私用组做主组

-L 

锁定指定用户,密码栏增加!

 -r

创建系统用户

-U 

-U解锁用户,密码栏减少!

 -o

解除uid唯一性限制

-e 

指明用户账户过期日期

 -c comment

注释

-f

设定非活动期限

useradd -N user:创建一个用户user,不创建私用组作为主组,而使用users组作为主组。

userdel [option] …login:删除指定用户

-r删除指定用户,包括家目录。

 

id [option]… user

-u:UID    查看用户的UID

-g:GID    查看用户的GID

-G:Groups  查看用户的组

-n:Name   查看用户的名字

 

su  [options] [-] [user]

切换用户方式:

su username:非登录式切换,不会读取用户的配置文件,不改变当前的工作目录。

su – username:登录式切换,会读取用户的配置文件,切换至家目录,完全切换。

 

使用另一个用户执行命令:

su – UserName -c COMMAND

 

passwdchage用法对比

passwd用法

chage用法

-l

锁定指定用户

-l

显示密码策略

-u

解锁指定用户

-d

last_day

-e

强制用户下次修改密码

-E

过期时间

-n

密码最短使用期限

-m

密码最小使用期限

-x

密码最大使用期限

-M

密码最大使用期限

-w

提前多少天开始警告

-W

提前多少天开始警告

-i

非活动期限

-I

非活动期限

–stdin

从标准输入接收密码

chage -d 0 test1:下次登录强制重设密码。

 

groupadd

groupadd -g GID :创建组时指明GID

-r:创建系统组

groupmod

-n group_name:新名字

-g GID:新的GID

组删除:

groupdel group:当有组中有用户时,无法进行删除。

 

gpasswdgroupmems用法对比

gpasswd用法

groupmems用法

-a user group

user添加到指定组中

-a user

指定用户加入组中

-d user group

从指定组中移除user

-d user

从组中删除指定用户

-A user1,user2

设置有管理权限的user

-p

从组中清空用户

-l

显示组成员列表

newgrp:临时切换组。

groups username:查看用户属组信息。

 

文件权限:

chown:设置文件的所有者

chown [option]…[owner][:group] file:

chown user file修改属组

chown user : group file 也可以同时修改属组

chown :group file 也可以单独修改属组

-R 递归

chown –reference=RFILE FILE….  修改为与文件同样的权限。

 

chgrp:设置文件的属组信息。

chgrp [option] …group file:修改文件属组。

chgrp [option]…–reference=RFILE FILE..

-R 递归

 

文件的权限主要针对三类对象进行定义: owner: 属主, u group: 属组, g other: 其他 每个文件针对每类访问者都定义了三种权限: r: Readable w: Writable x: eXcutable

 

文件:

r: 可使用文件查看类工具获取其内容 

w: 可修改其内容 

x: 可以把此文件提请内核启动为一个进程  

目录:

r: 可以使用ls查看此目录中文件列表 

w: 可在此目录中创建文件,也可删除此目录中的文件 

x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录 

X:只给目录x权限,不给文件x权限

chmod用法:

chmod [options] 八进制数字(3位)file

-R:递归修改权限。

 

chmod [options] 字母模式 file

修改一类用户所有权限。

u=,g=,o= ,a= 

u+,u_,g+,o+,o-,a+,a-

 

chmod [options] –reference=RFILE FILE

 

新建文件和目录的默认权限:

umask:设置用户创建文件的默认权限。

新建FILE默认权限:666-umask

如果所得结果某位为奇数(存在执行位),权限加1

新建DIR权限:777-umask

非特权用户umask002

rootumask022

umask:查看umask

umask 3位数字:设定umask的值

umask -S模式方式显示umask

umask -p输出可被调用

全局设置:/etc/bashrc  用户设置:~/.bashrc

 

 

Linux文件系统上的特殊权限 

三种常用权限:r, w, x    user, group, other 

安全上下文 

前提:进程有属主和属组;文件有属主和属组

(1) 任何一个可执行程序文件能不能启动为进程:取决发起者 对程序文件是否拥有执行权限 

(2) 启动为进程之后,其进程的属主为发起者;进程的属组为 发起者所属的组

(3) 进程访问文件时的权限,取决于进程的发起者 

   (a)进程的发起者,同文件的属主:则应用文件属主权限

   (b) 进程的发起者,属于文件属组;则应用文件属组权限 

   (c) 应用文件“其它”权限

任何一个可执行程序文件能不能启动为进程:取决发起者对 程序文件是否拥有执行权限启动为进程之后,其进程的属主为原程序文件的属主。

 

SUID权限:

任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限。 

启动为进程之后,其进程的属主为原程序文件的属主(比如其它用户执行cat之后,这个进程的属主就变成了root

SUID只对二进制可执行程序有效,SUID设置在目录上无意义 

权限设定: chmod u+s FILE… chmod u-s FILE…

 

可执行文件上SGID权限

  任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限。  

  启动为进程之后,其进程的属主为原程序文件的属组。 

  权限设定: chmod g+s FILE… chmod g-s FILE…

 

   一旦某目录被设定了SGID,则对此目录有写权限的用户在此 目录中创建的文件所属的组为此目录的属组。 

   通常用于创建一个协作目录 

权限设定: chmod g+s DIR… chmod g-s DIR…

 

Sticky位:

 具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权,在目录设置Sticky 位,只有文件的所有者或root可以删除该文件。

 sticky 设置在文件上无意义 

     权限设定: chmod o+t DIR… chmod o-t DIR… 

4表示SUID, 2表示SGID,1表示Sticky

 

权限位映射

SUID: user,占据属主的执行权限位 s: 属主拥有x权限 S:属主没有x权限   4

  SGID: group,占据属组的执行权限位 s: group拥有x权限 Sgroup没有x权限  2

  Sticky: other,占据other的执行权限位 t: other拥有x权限 Tother没有x权限 1

 

chattr +i 不能删除,改名,更改 

chattr +a 只能增加 

lsattr 显示特定属性

 

setfacl命令:

   -b,–remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。

   -k,–remove-default:删除缺省的acl规则。如果没有缺省规则,将不提示。

   -n–no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。 

  –mask:重新计算有效权限,即使ACL mask被明确指定。 

-d–default:设定默认的acl规则。 

–restore=file:从文件恢复备份的acl规则(这些文件可由getfacl -R产生)。通过这种机制可以恢复整个目录树的acl规则。此参数不能和除–test以外的任何参数一同执行。 

–test:测试模式,不会改变任何文件的acl规则,操作后的acl规格将被列出。 

-R–recursive:递归的对所有文件及目录进行操作。 

-L–logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录

-P–physical:跳过所有符号链接,包括符号链接文件。 

 –version:输出setfacl的版本号并退出。 

–help:输出帮助信息。 

 

     选项-m-x后边跟以acl规则。多条acl规则以逗号(,)隔开。选项-M-X用来从文件或标准输入读取acl规则。 

     选项–set–set-file用来设置文件或目录的acl规则,先前的设定将被覆盖。

     选项-m(–modify)-M(–modify-file)选项修改文件或目录的acl规则。 

     选项-x(–remove)-X(–remove-file)选项删除acl规则。

 

ACL组成部分:

Entry tag type:(标签入口类型)

   ACL_USER_OBJ:相当于Linuxfile_ownerpermission 

   ACL_USER:定义了额外的用户可以对此文件拥有的permission 

   ACL_GROUP_OBJ:相当于Linuxgrouppermission 

   ACL_GROUP:定义了额外的组可以对此文件拥有的permission

   ACL_MASK:定义了ACL_USER, ACL_GROUP_OBJACL_GROUP的最大权限  

   ACL_OTHER:相当于Linuxotherpermission

 

一开始文件没有ACL的额外属性:

 

 [root@localhost ~]# ls -l -rw-rw-r– 1 root admin 0 Jul 3 22:06 test.txt [root@localhost ~]# getfacl –omit-header ./test.txt 

 

user::rw- 

group::rw- 

other::r– 

 

 

设置格式:setfacl -m user:john:rw- ./test.txt

查看格式: getfacl –omit-header ./test.txt

 

我们先让用户john拥有对test.txt文件的读写权限: 

[root@localhost ~]# setfacl -m user:john:rw- ./test.txt

 [root@localhost ~]# getfacl –omit-header ./test.txt

 user::rw- 

user:john:rw- 

group::rw- 

mask::rw- 

other::r– 

 

这时我们就可以看到john用户在ACL里面已经拥有了对文件的读写权。

这个时候如果我们查看一下linuxpermission我们还会发现一个不一样的地方。 [root@localhost ~]# ls -l ./test.txt -rw-rw-r–+ 1 root admin 0 Jul 3 22:06 ./test.txt 

在文件permission的最后多了一个+号,当任何一个文件拥有了ACL_USER或者ACL_GROUP的值以后我们就可以称它为ACL文件,这个+号就是用来提示我们的。

我们还可以发现当一个文件拥有了ACL_USER或者ACL_GROUP的值时ACL_MASK同时也会被定义。 接下来我们来设置dev组拥有read permission

 [root@localhost ~]# setfacl -m group:dev:r– ./test.txt 

[root@localhost ~]# getfacl –omit-header ./test.txt 

user::rw- 

user:john:rw- 

group::rw- 

group:dev:r– 

mask::rw- 

other::r–

注意:在Linux file permission里面大家都知道比如对于rw-rw-r–来说当中的那个rw-是指文件组的permission. 但是在ACL里面这种情况只是在ACL_MASK不存在的情况下成立。如果文件有ACL_MASK值,那么当中那个rw-代表的就是mask值而不再是group permission了。

Default ACL:针对目录的。Access ACL针对文件。

设置格式:setfacl -d -m user:john:rw ./dir

 

注意:删除aclsetfacl -x不能删除+,应该使用chfacl才能彻底删除。

原创文章,作者:liuzhuo,如若转载,请注明出处:http://www.178linux.com/30526

(0)
liuzhuoliuzhuo
上一篇 2016-08-08
下一篇 2016-08-08

相关推荐

  • Bash学习基础知识一“命令”

    Bash 学习基础知识 目录 一、Shell是个啥? 二、BASH的命令     2.1 命令的语法格式     2.2 什么是命令     2.4 命令的类型     …

    Linux干货 2015-04-03
  • bind的安装实现

    首先介绍一下我的测试环境:centos 7+入网(为了试行一下自己的安装文档,才装的虚拟机) 1> yum install bind bind-chroot -y     因为刚刚安装的虚拟机,这里我就不检查了; 2>vim named.conf [root@localhost named]# cat /e…

    Linux干货 2016-03-20
  • 软件编译安装小结

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1439073     本文主要针对 configure 和 cmake 做一个介绍以及我们重新配置编译参数文件时,都需要做哪些清…

    Linux干货 2016-08-15
  • corosync + pacemaker + iscsi实现高可用mysql (下)

    上一篇讲的安装配置iscsi,本章介绍mariadb安装以及高可用的mysql具体实现 一、安装配置mariadb [root@SQL1 ~]# tar xf mariadb-5.5.36-linux-x86_64.tar.gz  -C /usr/local \\解压软件包 [r…

    Linux干货 2015-07-09
  • 编译安装bind9

    一、下载bind9.9.5源码包     可以通过www.isc.org站点来获得源码包。 二、将源码包解压到任意目录     源码包通常都是.tar.gz文件,因此我们需要先将其解压: 三、编译安装bind     1、安装前的准备工作 …

    Linux干货 2015-05-05
  • 数据结构-线性表

    1. 线性表:n个数据元素的有序集合。 线性表是一种常用的数据结构。在实际应用中,线性表都是以栈、队列、字符串、数组等特殊线性表的形式来使用的。由于这些特殊线性表都具有各自的特性,因此,掌握这些特殊线性表的特性,对于数据运算的可靠性和提高操作效率都是至关重要的。  线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点…

    Linux干货 2015-04-07