linux下用户与组管理
1、添加用户
#useradd user01
-u -- 指定UID
-g -- 指定GID -g users
-G -- 指定用户所属的次要组(附加组) -G users,admins
-f -- 指定失效天数
-e -- 指定过期日期
-c -- 用户说明
-s /bin/bash -- 指定用户登录shell
-d /home/admin -- 指定用户的家目录位置
-M -- 不创建用户家目录
-p -- 据说的设置密码 (没试过)
(如果没指定-g 则主要组默认用户同名组)
例:添加用户admin,要求用户ID为600,所属的主要组为users组,次要组为root和apache组,失效时间为60天,过期时间为2016年2月20日,用户说明为"storageengine",登录shell为csh,用户家目录为/sxjy/admin。
#useardd -u 600 -g users -G root,apache -f 60 -e 2016/2/20 -c"storage engine" -s /bin/csh -d /sxjy/admin admin
(用户名一般最好写useradd后面,防止忘记)
2、用户信息文件
(1)/etc/passwd -- 用户普通信息文件
admin:x:600:100:storage engine:/sxjy/admin:/bin/csh
用户名:用户假密码:UID:GID:用户说明:用户家目录:登录shell
(2)/etc/shadow -- 保存用户密码及时间类文件
admin:!!:16121:0:99999:7:60:16851:
用户名:密码:用户创建的天数:用户最小过期天数:用户最大过期天数:密码过期提示天数:失效天数
(3)/etc/skell -- 用户初始环境配置文件目录
(4)用户基本信息定义文件
/etc/login.defs 对用户的初始属性设置(如普通用户UID和GID范围设置等)
/etc/default/useradd
(5)设置用户密码
/etc/passwd
/etc/passwd- 是passwd文件的备份文件
# ls /etc/shadow
shadow shadow-
=====
当passwd文件被误删除的时候,可以恢复
# cp /etc/passwd- /etc/passwd
=====
#useradd –u 0 –o admin --添加管理员加–o 才能建-u 0
#useradd –r 也可以创建系统账户,只是账号uid会有限制 参照/etc/login.defs文件
====
#passwd user02
#passwd -d user02 \\删除用户密码
#passwd -l user02 \\锁定用户密码占位符有两个!!锁定不能登录就和nologin一样
#passwd -u user02 \\解锁用户
(6)/etc/skel/*文件
首先进入目录下ls -a 一下,目录下最重要的是.bash_logout、.bash_profile、.bashrc这三文件,他们跟用户的登陆和用户环境有关系,每次新建用户时,都会从此目录下拷贝这三个文件到新建用户家目录下(.开头)隐藏文件,例如家目录下.bashrc损坏,则出现不能登陆shell但能验证用户名和密码如下:
#su - user
-bash-3.2$ --非正常提示符
修复办法只要执行 cp /etc/skel/.bash* ~ (~是当前登录用户家目录)
3、更改有效组
有效组每次使用这个用户的时候,用那个组的身份,那个组就是有效组一般gid对应组就是有效组
初始组---->-g 可以指定
附属组---->
$ newgrp lisi 修改有效组为lisi
例:1、添加用户为自己姓名的拼音,指定用户ID为650,所属的主要组为users,用户说明为"sxjy student",过期时间为2015年2月21日,不创建用户家目录,失效时间为3个月
#useradd -u 650 -g users -c "sxjy student" -e 2015/2/21 -M -f90 user03
4、在用户家目录下,每个用户都有的配置文件,只对单独的用户有效。(局部地区配置文件)
.bash_profile:--用户每次登录时执行,需要加载的配置
.bashrc:--每次进入新的Bash环境时执行(打开终端) (run command)
.bash_logout:--用户每次退出登录时执行
.bash_history --保存上次用户注销前使用的命令
/var/spool/mail --新建用户时会自建邮箱
====
P.S
.bash_history 用来存放历史命令的上一次注销前在系统里使用的命令
/etc/profile --->HISTSIZE=1000 --修改配置文件更改SIZE大小
history 查看历史命令(最近1000条历史命令)
打扫行踪,不让人家知道你使用过那些命令(远程别人时很有用了)
1.# history -c 清除历史命令
2.删除 rm -rf /root/.bash_history
3.在/root/.bash_logout 文件里添加 history -c
学习基本命令后用shell编程加深理解
====
vim read.sh
read -p "please key in username" Username
read -s -p "please key in pwd" Userpwd
echo your username is $Username
echo your password is $Userpwd
echo please key in username
read -s Username #关闭输入密码的时候显示功能
echo your username is $Username
6、修改用户选项
#usermod -g dba -c "database engine" user03
#usermod -L user03 \\锁定用户与passwd –l比密码占位符只有一个!
#usermod -U user03 \\解锁用户
7、删除用户
#userdel admin
#userdel -r admin
-r 删除用户的家目录
8、用户ID说明
0 --管理员ID
1-499 --程序用户ID
500-60000 --普通用户ID
9、用户组管理
/etc/group \\保存用户组信息
#groupadd -g 1000 sxjy \\添加用户组sxjy,并指定组ID为1000
#groupdel sxjy \\删除用户组sxjy
#groupmod -g 1100 sxjy \\修改用户组ID
#gpasswd -a admin sxjy \\将用户加入到组
#gpasswd -d admin sxjy \\将用户从组移除
#gpasswd -M admin,user01,user02 sxkj
10、用户和组信的息查询
# id --用户的身份信息 不接用户名则显示当前用户
#finger user01 --查询用户详细信息,信息大都来自/etc/passwd
#chfn user01 --类似change finger,修改finger查询信息,会同步到/etc/passwd
#who --查询登陆用户信息(pts:虚拟终端如terminal窗口,tty:真正终端-ctrl+alt+F(N))
# w --类似who只是显示更详细
#users --显示当前登陆用户
#groups --查看用户所属组,前一个是有效组,后面是附属组。记得接用户名
学习基本命令后用shell编程加深理解
例:一次性在系统中添加20个用户,用户名为user1-user20,并设置密码为aixocm
#!/bin/bash
#for i in `seq 1 20`
for ((i=1;i<=5;i++));
do
read-p "Please Enter User Name:" name
/usr/sbin/useradd $name
echo"aixocm" | /usr/bin/passwd --stdin $name > /dev/null
done
if (($?==0))
then
echo "Add User successful"
else
echo "Add User failure,Please Check Program"
fi
本文出自 “8430296” 博客,请务必保留此出处http://8440296.blog.51cto.com/8430296/1399015
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。