linux用户及权限管理
【文件管理、管道、用户及组管理、用户及权限管理】\用户及组管理
用户与组管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。实现用户账号的管理,要完成的工作主要有如下几个方面:
1.用户账号的添加、删除与修改。
2.用户口令的管理。
3.用户组的管理。
Linux用户分为两种,分别是管理员(UID:0)和普通用户(UID:1-65535),普通用户又分为系统用户与登录用户。
注:一个程序可以访问哪些内容取决于这个程序的发行者是哪一个的。
linux组可分为管理员组(GID:0)与普通用户组(1-60000)
注:centos6版本与centos7版本的UID与GID略有不同。
此外,用户组还可以划分为基本组(用户在创建时默认创建一个与其名字相同的基本组)与附加组(除了已有的基本组以外,还可以添加其他组,其他组就是此用户附加组)
所以组名通用户名,且只包含一个用户就叫做私有组,而组内包含多个用户叫做公有组
Linux用户和组相关的配置文件
用户和用户组相关的信息都存放在/etc/passwd,/etc/shadow,/etc/group以及/etc/gshadow文件下。下面分别介绍这些文件的具体内容。
1./etc/passwd
此文件下保存了用户及其属性信息。其中每条信息从左到右被冒号分割成了7个部分,username(用户名):x(密码占位符,真正的密码自然不能放在这里了,太不安全了):UID(用户ID):GID(用户组ID):存放用户的注释信息:用户家目录:用户默认使用的shell。
2./etc/shadow
此文件保存了用户密码及其相关属性信息,其中每条信息从左到右被冒号分割成9个部分,用户名:密码(被加密过的,密码中有“!”或者“*”用户已被禁用):最近一次修改密码的日期,自linux元年开始的天数(1970年1月1日开始):密码最短使用时间:密码最长使用时间:密码告警时间(在密码过期前n天进行告警,需要修改密码了):不活动时间(超出警告时间后m天仍可登录):失效时间(到达此时间,用户无法使用):保留位暂不使用。
3./etc/group
此文件保存了用户组及其属性信息,每一行被冒号从左至右分割成了4个部分,组名(创建一个用户就会创建一个同名的组):x组密码占位符(与用户密码一样也是存放在其他位置):GID:以逗号分隔的用户列表,以此组为附加组的用户的用户列表。
4./etc/gshadow
此文件保存了组密码及其相关属性信息,每一行被冒号从左至右分割成了4个部分,组名(创建一个用户就会创建一个同名的组):密文密码(为空时只有该组成员可获得权限,“!”与“*”则不需要密码可直接加入):用户组管理员(是逗号分隔的用户列表,用户组管理员可以修改密码和组成员,也很组里其他成员拥有相同的权限):成员(以此组为附加组的用户的用户列表,应该要和/etc/group下的用户列表一样)
用户与组相关管理常用命令
一、用户创建:useradd
使用方法:useradd [options] login
常用选项:
-u:--uid UID:指定UID,定义在/etc/login.defs
-g:--gid GROUP:指明用户基本组,可为组名也可以是GID
-G: GROUP1[,GROUP2,...[,GROUPN]]]:指定用户所属的附加组,组事先存在
-c:--comment COMMENT:用户注释信息
-d:/PATH/TO/ HOME_DIR:指定的路径为用户的家目录:通过复制/etc/skel此目录并重命名实现,指定的家目录路径如果事先存在,则不会为用户复制环境配置文件
-s:--shell SHELL:指定用户的默认shell,可用列表存放在/etc/shells下
-r:创建系统用户。
注:默认值设定在/etc/default/useradd中。可用 useradd -D命令查看创建用户的默认配置
二、创建组:groupadd
使用方法:groupadd [option]... group_name
常用选项:
-g GID:指明GID号
-r:创建系统组
三、查看用户相关ID信息:id
使用方法:id [OPTION]... [USER]
常用选项:
-u: 仅显示有效的UID
-g: 仅显示用户的基本组ID
-G:仅显示用户所属的所有组的ID
四、切换用户或以其他用户身份执行命令:su
使用方法:su [options...] [-] [user [args...]]
切换用户方式:
非登录式切换,不会读取目的用户的配置文件进行初始化:su USERNAME
登录式切换,会读取目的用户配置文件,完全切换:su - USERNAME或者su -l USERNAME
换身份执行命令:
su [-] username -c 'COMMADN'
五、用户加密:passwd
使用方法:passwd[options]username:修改指定用户密码,仅root用户有权限。
常用选项:
-l:锁定指定用户
-u:解锁指定用户
-n:mindays:指定最短使用期限
-x:maxdays:最大使用期限
-w:warndays:提前告警期限
-i:inactivedays:非活动期限
从标准输入接收用户密码:echo “password” | passwd --stdin username
六、用户属性修改:usermod
使用方法:usermod [options] LOGIN
常用选项:
使用方式:userdel [options] LOGIN
常用选项-r:删除用户时一并删除其家目录,默认不删除
八、组属性修改:groupmod
使用方式:groupmod [options] GROUP
常用选项:
-g GID:新的GID
-n group_name:新组名
九、组删除:groupdel
使用方式:groupdel GROUP
十、组密码:gpasswd
使用方式:gpasswd [option] group
常用选项:
-a USER:将user添加至指定组
-d USER:删除用户以当前组命名的附加组
-A USER1,USER2,...:设置有管理权限的用户列表
十一、修改用户属性:chage
使用方式:chage [options] LOGIN
常用选项:
-d:修改最后一次修改密码的时间
-E:修改用户失效时间
-I:修改密码过期怒限时间
-W:修改告警天数
-m:修改密码最小使用天数
-M:修改密码最长使用天数
通过文件的方式增加用户
在linux中一切皆文件,那么我们操作文件就可以自己创建出一个用户来。当然实际操作时不会这样创建用户只是用来帮助理解。
第一步,在/etc/passwd 中创建一个用户;
rose:x:1003:1003:/home/rose:/bin/bash
第二步,在/etc/shadow增加密码等信息;
rose:!!:17321:0:99999:7:::
第三步,在/etc/group 增加主组;
rose:x:1003:
第四步,在/etc/gshadow 设置组密码信息;
rose:!::
第五步,为用户设置邮箱;
[root@localhost /]# touch /var/spool/mail/rose
第六步,设置家目录,并为家目录中增加一些隐藏文件
[root@localhost /]# mkdir /home/rose
[root@localhost /]# cp -r /etc/skel/.[!.]* /home/rose/
[root@localhost /]# id rose
uid=1003(rose) gid=1003(rose) groups=1003(rose)
文件的权限
文件权限针对的对象是:
owner:属主,u
group:属组,g
other:其他,o
对于文件而言:
文件可读(r):可以查看其内容。
文件可写(w):可修改文件内容。
文件可执行(x):可以把文件提请内核启动为一个进程。
对于目录而言:
目录可读(r):可以使用ls查看目录中文件列表
目录可写(w):可在此目录中创建或删除文件
目录可执行(x):可以使用ls-l查看目录中文件,可以cd进目录。
权限管理类命令
一、修改文件权限(chmod)
使用方法:
1. chmod [OPTION]... MODE[,MODE]... FILE...
可以直接将rwx直接赋值给相应的用户类型:u为属主,g为属组,o为其他用户,a为所有用户(同ugo=---)
或者直接操作一类用户的一个权限位(u+x,o-r)
查看文件权限
[root@localhost /]# ll -lh /dj
total 16K
-rw-r--r-- root root Jun : hello_world.py
-rw-r--r-- root root Jun : name_daxiaoxie.py
-rw-r--r-- root root Jun : name.py
-rw-r--r-- root root Jul : test.py
修改权限
[root@localhost /]# chmod /dj/hello_world.py
[root@localhost /]# ll -lh /dj
total 16K
-rwxrwxr-x root root Jun : hello_world.py
-rw-r--r-- root root Jun : name_daxiaoxie.py
-rw-r--r-- root root Jun : name.py
-rw-r--r-- root root Jul : test.py
使用第三种方式
[root@localhost /]# chmod --reference=/dj/hello_world.py /dj/test.py
[root@localhost /]# ll -lh /dj
total 16K
-rwxrwxr-x root root Jun : hello_world.py
-rw-r--r-- root root Jun : name_daxiaoxie.py
-rw-r--r-- root root Jun : name.py
-rwxrwxr-x root root Jul : test.py
[root@localhost /]#
二、修改文件的属组属主(仅使用root用户)
1.修改属主(chown)
使用方式:chown[OPTION]...[OWNER][:[GROUP]]FILE...或使用--referrence
chown owner|owner:group|:group file (其中:可用.替换,并且可以使用-R递归更换)
2.修改属组(chgrp)
chgrp[option]...group file或--referrence方式
3.文件或目录创建时的遮罩码:umask
file:666-umask(若某类用户权限减得结果中存在x权限则将其权限+1)
dir:777-umask
umask:查看当前值
umask#:设定值
linux用户及权限管理的更多相关文章
- Linux用户和权限——管理文件权限的命令
Linux用户和权限——管理文件权限的命令 摘要:本文主要学习了Linux中修改文件权限的命令. chown命令 chown命令,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件( ...
- Linux用户和权限——管理用户和用户组的命令
Linux用户和权限——管理用户和用户组的命令 摘要:本文主要学习了在Linux系统中管理用户和用户组的命令. useradd命令 useradd命令可以用来创建新用户. 基本语法 useradd [ ...
- Linux用户和权限管理看了你就会用啦
前言 只有光头才能变强 回顾前面: 看完这篇Linux基本的操作就会了 没想到上一篇能在知乎获得千赞呀,Linux也快期末考试了,也有半个月没有写文章了.这篇主要将Linux下的用户和权限知识点再整理 ...
- 4.Linux用户与权限管理
Linux 系统是一个多用于多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统 新增用户: useradd 新用户名 设置密码:pa ...
- Linux用户和权限管理
用户:资源获取标识符,资源分配,安全权限模型的核心要素之一 密码:来实现用户认证 创建用户:useradd Username 生成的属性信息 /etc/passwd 用户名:密码:占位符:UID:GU ...
- 3-4 linux 用户及权限管理
1. 安全上下文(secure context) 取决于资源权限和进程权限 分为三种:r:读,w:写,x:执行 每一类用户都有三个权限 文件: r:可读,可以使用类似cat等命令来查看文件内容 w:可 ...
- 拾遗:Linux 用户及权限管理基础
Lacks of Knowledge 1: Linux has large amount of COMMANDS,but many of them have similar funtions,it's ...
- linux 用户创建、管理、权限分配
(1)su与sudo su:通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证: sudo: sudo扮 ...
- 【linux相识相知】用户及权限管理
linux系统是多用户(Multi-users)和多任务(Multi-tasks)的,这样的目的是为了一台linux主机可以给很多用户提供服务同时运行多种服务,但是我们是怎么区分每个用户呢?作为一个管 ...
随机推荐
- mac下sublime text3 安装px转rem插件
本人使用的是os-x系统,即mac系统,每次使用单位rem用其他网页转换很不方便.自己捣腾了一下插件,现在共享给大家 第一步: 先下载插件: https://github.com/narrow-gat ...
- opencv 删除二值化图像中面积较小的连通域
对于上图的二值化图像,要去除左下角和右上角的噪点,方法:使用opencv去掉黑色面积较小的连通域. 代码 CvSeq* contour = NULL; double minarea = 100.0; ...
- nodeJS实现简单网页爬虫功能
前面的话 本文将使用nodeJS实现一个简单的网页爬虫功能 网页源码 使用http.get()方法获取网页源码,以hao123网站的头条页面为例 http://tuijian.hao123.com/h ...
- Azure 基础:Table storage
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table.其中的 Table 就是本文的主角 Azure Tabl ...
- Mybatis学习(一) - 快速入门
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装. MyBatis可以使用简单的XML或注解用 ...
- cpu-z如何查看电脑配置数据方法介绍
CPU-Z是款经典的内存检测工具,具有5大功能,使用CPU-Z可以查询电脑的处理器.缓存.主板.内存.显卡以及SPD的信息.但是怎么具体看哪一个项目呢?在今天的教程中,小编就跟大家分享一下cpu-z ...
- java面试笔试大汇总
java面试笔试题大汇总5 JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象:2.继承:3.封装:4. 多态性: 2.String是最基本的数据类型吗? 基本数据类型包括byte.int. ...
- web存储之webstorage
web存储分类 客户端和服务端 认识web存储 随着web应用的发展,是的客户端存储的用途越来越多,然而实现客户端端存储的方式也是越来越多样化.最简单最兼容的方式就是cookie,但作为真正的客户端存 ...
- 【解决】VS2013 + Qt 5.7(5.6适用)使用QSqlDatabase出现“无法解析的外部符号"错误
原始日期: 2016-08-03 22:09 错误如下: error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscal ...
- 【MFC】利用双缓冲和随机函数rand()实现蒲公英飞舞
原始日期:2014-05-29 22:44 这几天有些懒,几乎没怎么学MFC了,好容易有个题目:用双缓冲实现蒲公英飞舞,想来想去也没想到好方法,索性动手开始 写了 ,这一写,得,出来了,呵呵,无意中产 ...