Ps:本内容摘自“鸟哥的私房菜html
Linux系统新增与移除使用者:useradd,相关设定档,passwd,usermod,userdelshell
新增使用者:
useradd [-u UID] [-g initial_group] [-G other_group] \
-[Mm] [-c 说明档] [-d home] [-s shell] username
参数:
-u: 后面接的是UID,是一组数字。直接指定一个特定的UID给这个帐号;
-g: 后面接的那个数组名称就是咱们上面提到的initial group 啦~
该group ID(GID)会被放置到/etc/passwd的第四个字段内。
-G:后面接的群组名称则是这个帐号还能够支持的群组。
这个参数会修改/etc/group内的相关资料喔!
-M:强制!不要创建使用者家目录。
-m: 强制!要创建使用者家目录!
-c: 这个就是/etc/passwd的第五栏的说明内容啦!
-d: 指定某个目录成为家目录,而不要使用默认值;
-r: 创建一个系统的帐号,这个帐号的UID会有限制(/etc/login.defs)
-s: 后面接一个shell,预设是/bin/bash啦!数组
Ps:创建一个系统帐号,使用useradd -r 系统帐号名称
帐号管理更动的设定档至少包括:
/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow,/etc/username安全
相关设定档:咱们使用useradd新增使用者(帐号)时,一些在/etc/passwd当中的
值会去参考/etc/default/useradd,这个档案的内容有点像这样:
GROUP=100 预设的群组
HOME=/home 预设的家目录所在目录
INACTIVE=-1 在/etc/shadow内的第七栏
EXPIRE= 在/etc/shadow内的第八栏
SHELL=/bin/bash 预设的shell
SKEL=/etc/skel 使用者家目录的内容数据参考目录bash
关于群组的创建机制:
对于使用者群组的创建机制中,则有两种不同的机制存在:
》以FC4为表明,新建使用者时,若无指定initial group,则系统会主动创建一个
与帐号相同的群组名称,以该群组做为使用者的initial group;
》以SuSE 9 为表明,新建使用者时,预设不会创建新群组,而
以/etc/default/useradd内的GROUP设定值做为使用者的initial group。server
关于使用者家目录的参考:/etc/skel/*
SKEL就是使用者家目录的参考目录。新增使用者家目录内的各项数据,都是
由/etc/skel所复制过去的。
因此呢,将来若是我想要让新增使用者是,该使用者的环境变量~/.bashrc就设定
稳当的话,您能够到/etc/skel/.bashrc去编辑一下,也能够建
立/etc/skel/public_html这个目录,那么将来新增使用者后,在他的家目录就会有
public_html那个目录。htm
关于使用者UID/GID的设定:
与密码还有UID/GID有关的设定档则是在/etc/login.defs里面,这个档案有点像这
样:
MAIL_DIR /var/spool/mail 使用者预设邮件邮箱放置目录
PASS_MAX_DAYS 9999 /etc/shadow内的第五栏
PASS_MIN_DAYS 0 /etc/shadow内的第四栏
PASS_MIN_LEN 5 密码最短的字符长度,建议改到6以上
PASS_WARN_AGE 7 /etc/shadow内的第六栏
UID_MIN 500 使用者最小的UID,意即小于500的UID为系统保留
UID_MAX 60000 使用者最大的UID
GID_MIN 500 使用者自订群组最小的UID,小于500为系统保留
GID_MAX 60000 使用者自订群组的最大UID
CREATE_HOME yes 在不加-M及-m时,是否主动创建使用者家目录?资源
关于家目录预设是否创建:
在FC4的环境下,使用useradd useraccount 预设是会主动的创建家目录。除非使
用-M这个参数。而SuSE server9这个版本,预设是不创建家目录的,除非使用-m这
个参数。所以,若是确定要创建家目录的话,不论在那个版本,最好加上-m这个参数
来强制创建家目录吧。字符串
因此喽,useradd 这支程序在创建Linux上的帐号是,至少会参考:
/etc/default/useradd
/etc/login.defs
/etc/skel/*it
============passwd===========
使用useradd创建了帐号以后,在预设的状况下,该帐号是暂时被封锁的。你能够瞧
一瞧/etc/shadow内的第二字段就晓得了。因此直接给他设定新密码就行了!
passwd 帐号名称[useraccount]
因为使用者的身份不一样passwd有两种用法,
若是是root能够利用passwd[username]来帮使用者修改他们的密码!而不须要知道
旧密码。另外,也只有root能够随便设定密码,即便密码不符合系统的密码验证要
求。
若是是通常身份使用者,或者是root想要修改本身的密码时,直接输入【passwd】
,就可以修改本身的密码了。通常身份使用者输入的密码会通过系统的验证,验证的
机制除了/etc/login.defs里头规定的最小密码字符数以外,还会受
到/etc/pam.d/passwd这个PAM模块的检验呢!
通常来讲,您输入的密码最好要符合底下的要求:
密码不能与帐号相同及包含;
密码尽可能不要选用字典里面会出现的字符串;
密码须要超过8个字符;
若是三次密码输入没法通过验证,那么该密码就不被接受,固然仍是只能使用旧密码
执行passwd经过后,您就能够在/etc/shadow下查看到密码内容被改过了。
。
=========usermod==========
使用usermod能够对帐号相关的数据进行微调
usermod [-cdegGlsuLU] username
参数:
-c:后面接帐号的说明,即/etc/passwd 第五栏的说明栏,能够加入一些帐号的说
明;
-d: 后面接帐号的家目录,即修改/etc/passwd的第六栏;
-e: 后面接日期,格式是YYYY-MM-DD也就是在/etc/shadow内的第八个字段数据啦
-g: 后面接group name,修改/etc/passwd的第四个字段,亦便是GID的字段!
-G:后面接group name,修改这个使用者可以支持的群组,修改的是/etc/group
-l: 后面接帐号名称。亦便是修改帐号名称,/etc/passwd的第一栏!
-s: 后面接Shell的实际档案,例如/bin/bash 或/bin/csh等等。
-u: 后面接UID数字啦!即/etc/passwd第三栏的资料;
-L:暂时将使用者的密码冻结,让他没法登入。其实仅改/etc/shadow的密码栏。
-U:将/etc/shadow密码栏的“!”拿掉,解冻啦!
===============userdel==============
删除使用者啦,与他相关的档案由:
/etc/passwd,etc/shadow,/home/username
指令的语法是:
userdel [-r] username
参数:-r 连同使用者的家目录也一块儿删除
这个指令下达的时候要当心!一般咱们要移除一个帐号的时候,你能够手动的
将/etc/passwd与/etc/shadow里头的该帐号取消便可!通常而言,若是该帐号只是
[暂时不启用]的话,那么将/etc/shadow里头最后倒数一个字段设定为0就可让该
帐号没法使用,可是全部跟该帐号相关的数据都会留下来!使用userdel的时机,通
常是【你真的肯定不要让该用户在主机上面使用任何数据了!】
另外,若是想要完整的将某个帐号完整的删除,最好能够在下达【userdel -r
username】以前,先以【find / -user username】查出整个系统内属于username
的档案,而后再加以删除吧!
使用者功能:========chfn, chsh================
不管是useradd/usermod/userdel, 都是系统管理员所可以使用的指令,若是是一
般身份使用者经常使用“chfn,chsh”指令变动帐号数据!
一、chsh [-ls]
参数:
-l: 列出目前系统上面可用的shell,其实就是/etc/shells的内容!
-s: 设定修改本身的Shell。
二、chfn [-foph]
参数:
-f: 后面接完整的大名;
-o: 您办公室的房间号码;
-p: 办公室的电话号码;
-h: 家里的电话号码!
这些信息更改的是本来/etc/passwd里面的第五栏说明数据啦!每一个信息中间都以逗
号[,]分隔开来而已。
这个程序主要是搭配finger这支程序在运做的!不过,finger不是很安全预设不安
装。
====================id===============
id这个指令则能够查询某人或本身的相关UID/GID等等的信息,他的参数也很多。
PS:id指令查询的group值的是目前该使用者所属的全部群组,可是您必需要了解什
么是【初始群组与有效群组】的差别!
================新增与移除群组================
基本上,群组的内容与这两个档案有关:
/etc/group, /etc/gshadow
群组的内容其实很简单,都是上面两个档案的新增,修改与删除而已,不过,若是再
加上有效群组的概念,那么newgrp与gpasswd则不可不知呢!
groupadd:
groupadd [-g gid] [-r]
参数:
-g: 后面接某个特定的GID,用来直接给予某个GID~
-r: 创建系统群组啦!与/etc/login.defs内的GID_MIN有关。
PS:以groupadd新增的帐号,预设都不能使用密码的方式登入的,也就是预设是私有
群组,并没有法使用newgrp来登入的呢!
groupmod:
跟usermod相似的,这个指令仅是在进行group相关参数的修改而已。
groupmod [-g gid] [-n group_name]
参数:
-g: 修改既有的GID数字;
-n: 修改既有的群组名称
不过,不要随意的更动GID,容易形成系统资源的错乱问题。
groupdel: groupdel天然就是在删除群组的用法: groupdel groupname