文件、目录权限

批量创建新用户 newusers passwd格式文件 批量创建用户,必须和/etc/passwd下的文件格式一样  

下面开始批量创建:   首先准备好一个文件:用vi命令建一个user.txt

如图:QQ截图20160803110151.png

然后用cat user.txt

文件、目录权限

然后newusers批量创建,cat /etc/passwd查看下:

blob.png创建成功

批量修改用户密码  首先编辑好一个文件 vi pass.txt

QQ截图20160803111433.png

编辑好后 用命令:cat psss.txt | chpasswd   ,  修改成功  试下能否登录

blob.png

登陆成功  但是缺少配置文件       下面来解决这个问题

blob.png

 cp -r /etc/skel/. /testdir/user6/   

blob.png

再登录一次试试

blob.png  修改成功




用户属性修改usermod [OPTION] login

-u UID: 新UID

-g GID: 新基本组

-G GROUP1[,GROUP2,…[,GROUPN]]] :新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a 选项,表示append; 

-s SHELL :新的默认SHELL; 

-c 'COMMENT' :新的注释信息;

-d HOME: 新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m 选项

-l login_name: 新的名字;

-L: lock 指定用户, 在/etc/shadow 密码栏的增加!

-U: unlock 指定用户,将 /etc/shadow的密码栏的! 拿掉

-e YYYY-MM-DD: 指明用户账号过期日期;

-f INACTIVE: 设定非活动期限;

blob.png

删除用户 userdel [OPTION]… login

-r: 删除用户家目录、以及邮箱

查看用户相关的ID信息 id [OPTION]… [USER]

-u: UID

-g: GID

-G: Groups查看辅助组

-n: Name显示出名称    可以组合

切换用户或以其他用户身份执行命令  su [options…] [-] [user [args…]]

切换用户的方式:

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

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

root su 至其他用户无须密码;非root 用户切换时需要密码

换个身份执行命令:  su [-] UserName -c 'COMMAND'

选项:-l –login:  su -l UserName 于 相当于 su – UserName

blob.png   用户切换,家目录没有切换  这种方式叫做不完全切换、非登录式切换

blob.png    切换用户,家目录也切换     这种方式叫做完全式登录

设置密码:passwd [OPTIONS] UserName: 修改指定用户的密码,仅root 用户权限

passwd: 修改自己的密码;

 常用选项:

-l: 锁定指定用户

-u: 解锁指定用户

-e: 强制用户下次登录修改密码

-n mindays: 指定最短使用期限

-x maxdays :最大使用期限

-w warndays :提前多少天开始警告

-i inactivedays :非活动期限;

–stdin :从标准输入接收用户密码;

echo " PASSWORD " | passwd –stdin USERNAME

创建组:  groupadd [OPTION]… group_name

-g GID: 指明GID 号;[GID_MIN, GID_MAX]

-r: 创建系统组;

CentOS 6: ID<500

CentOS 7: ID<1000

blob.pngblob.png

修改和删除组

组属性修改:groupmod     groupmod [OPTION]… group

-n group_name: 新名字

-g GID: 新的GID;

blob.png 

组删除:groupdel    groupdel GROUP

更改组密码

组密码:gpasswd      gpasswd [OPTION] GROUP

-a user: 将user 添加至指定组中;

-d user: 从指定组中移除用户user

-A user1,user2,…: 设置有管理权限的用户列表

blob.png



文件权限

文件的权限主要针对三类对象进行定义:

owner: 属主, u

group: 属组, g

other: 其他, o

每个文件针对每类访问者都定义了三种权限:

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

w: Writable 写权限  可修改其内容

x: eXcutable 执行权限  可以把此文件提请内核启动为一个进程

blob.png

-rw-r–r– 就是权限  第一个root,是文件所有者(owner) 第二个root是文件所属组 还有other

-rw-r–r–就是给这三类对象赋予权限的 按照rwx顺序赋予权限 没有权限用-代替

更该权限语法:chmod who(u,g,o,all) opt(+,-,=) permission(r,w,x) file……

例:blob.png

目录权限

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

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

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

X:只给目录x 权限,不给文件x 权限(文件本身没有权限)

chmod who(u,g,o,all) opt(+,-,=) permission(r,w,x,X) file……

还有一种形式:chmod 数字(3个八进制数字) file    r:4  w:2  x:1 没权限就是0

算法:rwxrwxrwx就是r+w+x=777

blob.png

chmod [OPTION]… –reference=RFILE FILE…

参考RFILE 文件的权限,将FILE 的修改为同RFILE;

blob.png

权限设置:

chgrp  sales testfile 设置所有者

chown  root:admins testfile设置所有者、所属组

chmod  u+wx,g-r,o=rx file所有者+写、执行,所属组-读,other赋予读、执行 

chmod  -R g+rwX /testdir对此目录里的所有子目录、文件 赋予读写权限,X表示对目录加执行权限

chmod  600 file所有者是读、写权限  其他的没权限

chown  mage testfile把所有者改成mage  root可执行,文件所有者user可将之改为user的所属组

blob.png

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

 umask值可以用来保留在创建文件权限

umask值 + default默认权限=dir目录777   file文件666

umask 从最大权限中屏蔽掉相应权限位,从而得到默认权限

默认权限=最大权限-umask  如果是目录,则公式不变         

 新建FILE 权限: 666-umask    如果所得结果某位存在执行(奇数)权限,则将其权限+1

 新建DIR 权限: 777-umask

 非特权用户umask是002

 root 的umask 是022

 umask: 查看

 umask #: 设定

 umask –S 模式方式显示

 umask –p 输出可被调用

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

更改umask的方法:blob.png临时更改

特殊权限: SUID, SGID, Sticky

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

可执行文件上SUID权限

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

 启动为进程之后,其进程的属主为原程序文件的属主   只对二进制可执行程序有效

   SUID 设置在目录上无意义

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

可执行文件上SGID权限: 

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

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

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

目录上的SGID权限

当他作用在一个目录上时,在此目录下新建的文件,将自动继承该目录的所属组

 默认情况下,用户创建文件时,其属组为此用户所属的 主 组

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

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

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

sticky位:粘滞

  具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权

 在目录设置Sticky 位,只有文件的所有者或root可 可以删除该文件

 sticky 设置在文件上无意义

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

例如:blob.png

设定文件特定属性:

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

 chattr +a 只能增加

 lsattr 显示特定属性

blob.png

加上特定属性后,只能看,不能删,不能更改,不能移动     

想要恢复正常 chattr -i命令  恢复正常

blob.png

访问控制列表

为多用户或者组的文件和目录赋予访问权限rwx

• mount -o acl /directory

• getfacl file |directory

• setfacl -m u:wang:rwx file|directory

• setfacl -Rm g:sales:rwX directory

• setfacl -M file.acl file|directory把设置权限的代码写到文件里,用M来调用

• setfacl -m g:salesgroup:rw file| directory组权限

• setfacl -m d:u:wang:rx directory 此目录下,新建的文件有此权限

• setfacl -x u:wang file |directory

• setfacl -X file.acl directory

取消用户guoquan所有权限   如图

blob.png

恢复权限:

blob.png

  ACL 文件上的group 权限是mask 值(自定义用户,自定义组,拥有组的最大权限), 而非 传统的组权限       

mask 只影响除所有者和other 的之外的人和组的最大权限      

Mask 需要与用户的权限进行逻辑与运算后,才能变成有限的权限

 getfacl 可看到特殊权限:flags

blob.png

原创文章,作者:旧城以西,如若转载,请注明出处:http://www.178linux.com/27605

(0)
旧城以西旧城以西
上一篇 2016-08-04
下一篇 2016-08-04

相关推荐

  • Linux系统启动流程简介

    centos系统启动流程 本篇仅仅讲解centos5和6 centos7并不适用 Linux系统的组成部分:内核+根文件系统 内核功能: 进程管理 内存管理 网络管理 驱动程序 文件系统 安全功能 有以下目录结构的文件系统可以被识别为根文件系统,但根文件系统本身不存在 rootfs:/bin/ /sbin /etc/ /sys/…

    Linux干货 2016-09-10
  • CentOS7下重置root密码

    CentOS7下重置root密码          Linux系统、UNIX系统和其他类UNIX系统中,存在唯一的超级用户root。普通用户密码忘掉可以用root用户重置,但是一旦root密码忘掉,事情就复杂起来了。本文主要介绍root密码忘掉之后,重置密码的过程。   &nbs…

    Linux干货 2017-03-30
  • 0803课堂练习与作业

    1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作? 不能添加在/testdir中增删改文件或目录 2、当用户xiaoqiang对/testdir 目录无读权限时,意味着无法做哪些操作? 不能查看文件中的文件列表 3、当用户wangcai 对/testdir 目录无写权限时,该目录下的只读文件file1是否可修改和删除? 不…

    Linux干货 2016-08-04
  • Linux内核编译过程详解

    前言 Linux内核是Linux操作系统的核心,也是整个Linux功能体现的核心,就如同发动机在汽车中的重要性。内核主要功能包括进程管理、内存管理、文件管理、设备管理、网络管理等。Linux内核是单内核设计,但却采用了微内核的模块化设计,支持内核线程以及动态装载内核模块的能力。 Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订…

    Linux干货 2015-04-01
  • Python函数式编程指南:目录和参考

    目录: 概述 这一篇简要地描述了函数式编程和一些相关的概念。 函数 这一篇展示了关于函数可能不常用到的部分特征并尝试引导诸位使用函数式的思维解决问题,并介绍了诸多有用的内建函数。 迭代器 这一篇介绍了迭代器以及Python对迭代器的语法级的支持,还包括了内置模块itertools的介绍。 生成器 这一篇介绍了自定义的迭代器——生成器,并展示了生成器的用途和使…

    Linux干货 2015-03-11
  • httpd2.2基础安装

    编译安装前,首先要确认开发包组已经装上。 开发包组: Developments tools server platform development(centos 7) 并且将apr 与 apr-unil 装上。这是httpd 可移植运行所必须用到的组件.这里举例说明的是httpd2.2版本。 若是安装httpd2.4以上版本的话,还要安装pcre库。pcre…

    2017-04-24