一、帐号与群组
关于使用者帐号:
用户的ID与帐号信息所在位置是 /etc/passwd,而管理密码的数据则是在 /etc/shadow
每个登陆的使用者至少都会取得两个 ID ,
一个是使用者 ID (UserID ,简称 UID)、
一个是群组 ID (Group ID ,简称 GID)。
之前提到的文件的所有者和所属组,Linux就是通过UID与GID赖进行判断的呢(它只认识0和1这样的,对字符型的帐号名称其实没什么概念!,所以说,当系统有需要的时候,其实是通过查找/etc/passwd 和 /etc/group来进行帐号的显示的!如果没有找到对应UID的帐号,则直接显示UID的数字了!)
1./etc/passwd文件
[root@localhost ~]# cat /etc/passwd
root:x:::root:/root:/bin/bash
bin:x:::bin:/bin:/sbin/nologin
daemon:x:::daemon:/sbin:/sbin/nologin
adm:x:::adm:/var/adm:/sbin/nologin
lp:x:::lp:/var/spool/lpd:/sbin/nologin
sync:x:::sync:/sbin:/bin/sync
shutdown:x:::shutdown:/sbin:/sbin/shutdown
halt:x:::halt:/sbin:/sbin/halt
mail:x:::mail:/var/spool/mail:/sbin/nologin
operator:x:::operator:/root:/sbin/nologin
games:x:::games:/usr/games:/sbin/nologin
ftp:x:::FTP User:/var/ftp:/sbin/nologin
格式
:用户名,用户登录系统时使用的用户名(账户名称)
:密码位
在早期的Linux系统中,密码是存放在/etc/passwd文件中的,但是每个用户对该文件都有读的权限,这是比较危险的,
后来就不存放在这个文件了。
——转移到/etc/shadow下,所以显示x
:UID,用户标识号
管理员标识(root):0 不会改变
普通用户: 1-65535
系统用户(伪用户):1-499, 1-999 (centos6 ,centos7)
登录用户:500-60000 , 1000-60000
:GID,缺省组标识号
:注释性描述
:宿主目录,用户登录系统后的缺省目录
:用户使用的shell,默认为bash
2./etc/shadow文件
[root@localhost ~]# ll /etc/shadow
----------. root root 12月 : /etc/shadow
// 这个权限表示:只有root可以读写!
想要查询加密方式,可以通过:
authconfig --test | grep hashing
[root@localhost ~]# authconfig --test | grep hashing
password hashing algorithm is sha512
shadow文件内容:
[root@localhost ~]# head -n /etc/shadow
root:$$lWdDY9NwZNDiRLx8$PxOrJJojIcT93j4q7SBqapAnkgLqS9AA6qCLMWkW5EF1P4zYGpDLGPSehUbVJInRmHpsXaQKW8J2fnVUvPfgz/:::::::
bin:*:::::::
daemon:*:::::::
adm:*:::::::
格式
:用户名
:加密密码,如果是 !则代表密码无法使用!
:最近一次修改时间,以天位单位,从1970年1月1日为参考点(两个时间点间累加的日期)
:最小时间间隔,两次修改密码之间的最小天数,为0表示不限制,如改为3,表示间隔3天以上才能修改密码
:最大时间间隔,密码保持有效的最多天数,超过天数不改密码,则用户无法登录
:警告时间:从系统开始警告到密码失效的天数
:账号闲置时间,密码过期后的帐号宽限时间
:失效时间,密码失效的绝对天数,就是账号的失效日期,到了此日期帐号强制失效,例如用于收费服务等!
:标志,一般不使用
3.口令管理
普通用户修改密码:直接运行passwd即可!passwd指令介绍,参考:http://man.linuxde.net/passwd
[linuxde@localhost ~]$ passwd Changing password for user linuxde. //更改linuxde用户的密码;
(current) UNIX password: //请输入当前密码;
New UNIX password: //请输入新密码;
Retype new UNIX password: //确认新密码;
passwd: all authentication tokens updated successfully. //更改成功; 来自: http://man.linuxde.net/passwd
普通用户忘记密码以及root用户修改自己密码:(root修改自己密码运行 passwd root即可!)
[root@localhost ~]# passwd linuxde //更改或创建linuxde用户的密码;
Changing password for user linuxde. New UNIX password: //请输入新密码;
Retype new UNIX password: //再输入一次;
passwd: all authentication tokens updated successfully. //成功; 来自: http://man.linuxde.net/passwd
口令密码详细的设置命令chage的参考:http://linux.51yip.com/search/chage
root用户忘记密码比较棘手,将在单人维护章节讲述!
关于群组
1./etc/group
[root@localhost ~]# head -n /etc/group
root:x::
bin:x::
daemon:x::
sys:x::
.组名称
.组密码,通常不用,同样类似有/etc/gshadow文件
.GID,群组ID
.组员列表,新版Linux对于初始群组已经不显示默认成员了!
一个用户可以加入多个群组(使用命令 groups 可以查看所有群组!),所以这里会有有效群组的概念(不然新建一个文件怎么确定是属于哪个群组呢)
[dmtsai@study ~]$ groups
dmtsai wheel users
其中,第一个群组就是有效群组,新建文件所属的群组就是这个群组!
切换有效群组可以使用 newgrp
[dmtsai@study ~]$ newgrp users
修改用户加入群组,可以通过usermod:http://man.linuxde.net/usermod
2./etc/gshadow
[root@localhost ~]# head -n /etc/gshadow
root:::
bin:::
daemon:::
sys:::
.组名称
.密码栏,空或者!表示无密码,表示无群组管理员
.群组管理员帐号
.加入群组的帐号列表,与/etc/group相似!
二、帐号管理
1.添加用户——useradd
[root@localhost ~]# useradd --help
用法:useradd [选项] 登录
useradd -D
useradd -D [选项] 选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
创建一般用户示例:
useradd vbird1
CentOS 这些默认值主要会帮我们处理几个项目:
在 /etc/passwd 里面创建一行与帐号相关的数据,包括创建 UID/GID/主文件夹等;
在 /etc/shadow 里面将此帐号的密码相关参数填入,但是尚未有密码;
在 /etc/group 里面加入一个与帐号名称一模一样的群组名称;
在 /home 下面创建一个与帐号同名的目录作为使用者主文件夹,且权限为 700
[root@localhost ~]# useradd -u vbird2
[root@localhost ~]# ll -d /home/vbird2
drwx------. vbird2 vbird2 12月 : /home/vbird2
[root@localhost ~]# grep vbird2 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird2:x::::/home/vbird2:/bin/bash
/etc/shadow:vbird2:!!:::::::
/etc/group:vbird2:x::
更多实例,参考菜鸟教程:http://www.runoob.com/linux/linux-comm-useradd.html
创建系统用户示例:
[root@study ~]# useradd -r vbird3
[root@study ~]# ll -d /home/vbird3
ls: cannot access /home/vbird3: No such file or directorya <==不会主动创建主文件夹
[root@study ~]# grep vbird3 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird3:x::::/home/vbird3:/bin/bash
/etc/shadow:vbird3:!!:::::::
/etc/group:vbird3:x::
useradd的默认配置可以通过 -D选项进行查看:
[root@localhost ~]# useradd -D
GROUP=
HOME=/home
INACTIVE=-
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
关于参考目录SKEL,参考鸟哥的介绍:
SKEL=/etc/skel:使用者主文件夹参考基准目录
这个咚咚就是指定使用者主文件夹的参考基准目录啰~举我们的范例一为例, vbird1 主文件
夹 /home/vbird1 内的各项数据,都是由 /etc/skel 所复制过去的~所以呢,未来如果我想要让
新增使用者时,该使用者的环境变量 ~/.bashrc 就设置妥当的话,您可以到 /etc/skel/.bashrc
去编辑一下,也可以创建 /etc/skel/www 这个目录,那么未来新增使用者后,在他的主文件夹
下就会有 www 那个目录了!这样瞭呼?
更多useradd默认配置可以参考:https://www.cnblogs.com/craftor/p/3811612.html
关于GID/UID以及密码的参考则是来自 /etc/login/defs,
MAIL_DIR /var/spool/mail <==使用者默认邮件信箱放置目录
PASS_MAX_DAYS <==/etc/shadow 内的第 栏,多久需变更密码日数
PASS_MIN_DAYS <==/etc/shadow 内的第 栏,多久不可重新设置密码日数
PASS_MIN_LEN <==密码最短的字符长度,已被 pam 模块取代,失去效用!
PASS_WARN_AGE <==/etc/shadow 内的第 栏,过期前会警告的日数
UID_MIN <==使用者最小的 UID,意即小于 的 UID 为系统保留
UID_MAX <==使用者能够用的最大 UID
SYS_UID_MIN <==保留给使用者自行设置的系统帐号最小值 UID
SYS_UID_MAX <==保留给使用者自行设置的系统帐号最大值 UID
GID_MIN <==使用者自订群组的最小 GID,小于 为系统保留
GID_MAX <==使用者自订群组的最大 GID
SYS_GID_MIN <==保留给使用者自行设置的系统帐号最小值 GID
SYS_GID_MAX <==保留给使用者自行设置的系统帐号最大值 GID
CREATE_HOME yes <==在不加 -M 及 -m 时,是否主动创建使用者主文件夹?
UMASK <==使用者主文件夹创建的 umask ,因此权限会是
USERGROUPS_ENAB yes <==使用 userdel 删除时,是否会删除初始群组
ENCRYPT_METHOD SHA512 <==密码加密的机制使用的是 sha512 这一个机制!
关于这里,可以参考:http://blog.csdn.net/u010181136/article/details/17436407
综上:useradd至少会参考以下3个文件:
/etc/default/useradd
/etc/login.defs
/etc/skel/*
2.修改用户——usermod
-c<备注>:修改用户帐号的备注文字;
-d<登入目录>:修改用户登入时的目录;
-e<有效期限>:修改帐号的有效期限;
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
-g<群组>:修改用户所属的群组;
-G<群组>;修改用户所属的附加群组;
-l<帐号名称>:修改用户帐号名称;
-L:锁定用户密码,使密码无效;
-s:修改用户登入后所使用的shell;
-u:修改用户ID;
-U:解除密码锁定。 来自: http://man.linuxde.net/usermod
示例:
[root@localhost ~]# usermod -c "test accout" vbird2
3.删除用户——userdel
确定了不使用此帐号再删除,否则只需要usermod -L 锁定即可!
[root@study ~]# userdel [-r] username
选项与参数:
-r :连同使用者的主文件夹也一起删除
以上3个都是管理员使用的指令,不过一般的使用者也是阔以有相关的命令的!
1.查看信息——id
id [-gGnru][--help][--version][用户名称] 来自: http://man.linuxde.net/id
详细选项这里不展开,反正直接使用id就列出所有洛!
[root@localhost ~]# id root
uid=(root) gid=(root) 组=(root)
[root@localhost ~]# id vbird2
uid=1500(vbird2) gid=1500(vbird2) 组=1500(vbird2)
像这样我们之前直接指定UID为1500,则中间的1000-1049就直接废弃了!
2.查看与修改指纹信息——finger与chfn,修改shell——chsh
暂略。
三、群组管理
与账户管理十分相似,也是增删改的相关操作!
1.群组新增——groupadd
groupadd [-g gid] [-r] 群组名称
选项与参数:
-g :后面接某个特定的 GID ,用来直接给予某个 GID ~
-r :创建系统群组啦!与 /etc/login.defs 内的 GID_MIN 有关。
更多groupadd参考:http://man.linuxde.net/groupadd
2.群组修改——groupmod
groupmod [-g gid] [-n group_name] 群组名
选项与参数:
-g :修改既有的 GID 数字;
-n :修改既有的群组名称
更多groupmod参考:http://man.linuxde.net/groupmod
3.群组删除——groupdel
groupdel [groupname]
不过,这个命令需要注意,如果这个群组是某个用户的默认群组,则无法删除!(不然使用者一登录,发现默认群组都没了。。)
所以,要么你把那用户删了,要么改他的默认群组。
更多groupdel参考:http://man.linuxde.net/groupdel
4.群组管理员设置——gpasswd
和我们的社交帐号的群是一样的,不用什么事都通过root来干,可以设置群管理员,让群管理员来管理群
[root@study ~]# gpasswd groupname
[root@study ~]# gpasswd [-A user1,...] [-M user3,...] groupname
[root@study ~]# gpasswd [-rR] groupname
选项与参数:
:若没有任何参数时,表示给予 groupname 一个密码(/etc/gshadow)
-A :将 groupname 的主控权交由后面的使用者管理(该群组的管理员)
-M :将某些帐号加入这个群组当中!
-r :将 groupname 的密码移除
-R :让 groupname 的密码栏失效
# 关于群组管理员(Group administrator)做的动作:
[someone@study ~]$ gpasswd [-ad] user groupname
选项与参数:
-a :将某位使用者加入到 groupname 这个群组当中!
-d :将某位使用者移除出 groupname 这个群组当中。
关于gpasswd的用法参考:http://linux.51yip.com/search/gpasswd
ACL不再赘述,待补充...
Linux入门进阶第五天——用户管理(帐号管理 )上的更多相关文章
-
Linux入门进阶第五天——用户管理(帐号管理 )下
一.身份切换 为了避免 rm -rf /* 的悲剧发生,平时使用时,尽量使用一般帐号!需要环境设置等必要时才使用root 1.su命令 一般地,推荐使用su - / su - username的形式来 ...
-
Linux入门进阶第六天——登录文件、开机与模块管理
一.登录文件概述 1.什么是登录文件 简单的说,就是记录系统活动信息的几个文件, 例如:何时.何地(来源 IP).何人 (什么服务名称).做了什么动作 (讯息登录啰). 换句话说就是:记录系统在什么时 ...
-
Linux入门进阶第四天(下)——程序管理(补充内容)
1.PID 触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的使用者与相关属性关系,给予这个 PID 一组有效的权限设置. 同一个程序 ...
-
Linux学习笔记---用户管理---帐号管理
root管理 (1)新增用户:useradd -u 指定UID -g 指定GID -G 作为组员添加到某个组 -M 不创建主用户目录 -m 创建主用户目录 -c 用户信息说明列 -d 指定某个目录为主 ...
-
鸟哥的linux私房菜——第十三章学习(Linux 帐号管理与 ACLL 权限设置)
第十三章.Linux 帐号管理与 ACLL 权限设置 1.0).使用者识别码: UID 与 GID UID :User ID GID :group ID [root@study ~]# ll -d / ...
-
GitHub学习心得之 安装配置与多帐号管理
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 GitHub学习心得之 安装配置与多帐号管理 1.前言2.GitHub Linux安装(ub ...
-
【Git笔记】怎样在同主机同账户下实现多个gitlab帐号管理各自的remote repo
我们可能会遇到以下的场景: 1)多人共用同一台Linux开发机,该开发机仅仅有一个共用的work帐号,非常多人都用这个帐号登录主机进行日常开发. 2)该work帐号下统一安装了gitclient供多人 ...
-
linux用户帐号管理/etcpasswd 和/etc/shadow文件
#学习鸟哥的linux私房菜 /etc/passwd的文件构造: dahu@dahu-OptiPlex-:~/myfile/VideoFile$ head /etc/passwd root:x:::r ...
-
Linux入门篇(五)——Shell(一)
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
随机推荐
-
浅谈 PHP 与手机 APP 开发(API 接口开发) -- 转载
转载自:http://www.thinkphp.cn/topic/5023.html 这个帖子写给不太了解PHP与API开发的人 一.先简单回答两个问题: 1.PHP 可以开发客户端? 答:不可以,因 ...
-
Provisioning Services 7.6 入门到精通系列之二:基础架构环境
在阅读本博文之前强烈建议同学们提前了解Citrix XenDesktop和XenApp等产品,并对PVS相关产品概念架构有深入的理解. 1.1 以下是在上一章节中规划的本次测试环境的配置清单(后续 ...
-
Rescue
1039: Rescue Time Limit: 1 Sec Memory Limit: 32 MBSubmit: 1320 Solved: 306 Description Angel was c ...
-
解决 jersey javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119)
检查是否Jar冲突 保留一个jersey-server-*.jar
-
PHP 超级全局变量
超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用. PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作 ...
-
ANDROID_MARS学习笔记_S01原始版_023_MP3PLAYER004_同步显示歌词
一.流程分析 1.点击播放按钮,会根据lrc名调用LrcProcessor的process()分析歌词文件,得到时间队列和歌词队列 2.new一个hander,把时间队列和歌词队列传给自定义的线程类U ...
-
键盘皇者 RealForce 104Pro独家评测
http://tech.sina.cn/?sa=t84d20738943v44&page=2&pwt=rest2&vt=4&from=mbaidu&clickt ...
-
复用TCP连接提升流媒体服务器之间流量转发效率
由于媒体推流客户端所在地域不同.所接入网络运营商不同.就近接入原则等因素,导致不同的视频推流客户端会推流至不同的流媒体服务器(本文主要针对目前WEB或手机的基于TCP的流媒体服务器),在某流媒体服务器 ...
-
使用VMware安装linux虚拟机以及相关配置
前言 使用VMware安装虚拟机这个一般都知道,操作简单.而本文主要讲使用虚拟机的后续相关配置.并记录使用过程中遇到的问题以及一些技巧.本篇文章以后回持续更新的... 安装包准备 VM:12 Linu ...
-
爬坑!OpenCV打开双目摄像头
1.首先找到双目摄像头的VideoCapture的设备号,记住定义时要采用降序的方法定义:cv::VideoCapture Rcap(1); cv::VideoCapture Lcap(0); 2.分 ...