您的位置:首页 > 运维架构 > Linux

Linux学习笔记——用户管理

2013-10-24 07:26 387 查看

Linux学习笔记——用户管理

分类:
学习笔记 2012-08-16 01:00
826人阅读 评论(0)
收藏
举报

linuxapache加密远程登录solarisredhat
用户管理

1、用户管理的配置文件

用户信息文件 /etc/passwd

root:x:0:0:root:/root:/bin/bash

用户名:密码位:UID:GID:注释性描述:宿主目录:命令解释器

man 5 passwd

每行表示一个用户

[root@lovelock frost]# wc -l /etc/passwd

30 /etc/passwd

则用户总数是30

Linux用户分为三类

超级用户 root UID=0

普通用户 UID=500~60000

伪用户 UID=1~499

伪用户特点

1)伪用户与系统和服务程序相关

bin、daemon、shutdown、halt等任何Linux系统都有这些伪用户

mail、news、games、apache、ftp、mysql及sshd等,与Linux系统的进程有关

2)伪用户通常不需要或无法登录系统

3)可以没有宿主目录

不可能有用户不属于任何用户组,或者按照部门分组

[root@lovelock frost]# grep frost /etc/passwd

frost:x:500:500::/home/frost:/bin/bash

用户组特点

每个用户至少属于一个用户组

每个用户组可以包含多个用户

同一用户组的用户享有该组共有的权限

Linux中用户组不能属于另外一个用户组

描述信息可描述可不描述,但建议给出

宿主目录用来存放自己的基本信息,如果不手动创建,就会在home目录下创建于用户同名的目录,为宿主目录

用户使用的shell,缺省是bash

MD5加密是单向不可逆的,输入位数不确定,输出位数是一定的

密码文件 /etc/shadow

保存了真正的用户密码

格式说明

root:$6$nqM2zfLVAMfeCClh$aaC1a/ECqrZXt6dOFH7IZRkDcM3Ex3A2jfnP5VW51j2JRCMM3RplNWK

UF0E/zM.aPmOE5zVeM1cFVhkYGv7lK1:15564:0:99999:7:::

用户名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:账号闲置时间:失效时间:标识

用户名:用户登录时用的用户名

密码:加密后的密码,如果将密码删除不是不能登录,而是不需要密码就能登录

最后一次修改时间:从1970年1月1日开始算起的

最小间隔时间:用户最后一次修改密码的时间

最大间隔时间:密码保持有效的最多天数,强迫用户不更改密码就不能登录

警告时间:从系统开始警告到密码失效的天数,当还剩这个天数时系统会提醒用户更改密码

账号闲置时间:用户多少天没有登录过了

失效时间:密码时间失效的绝对天数,比如账号被暂停(锁定)

标识:一般不使用,为空

用户组文件 /etc/group

用户组密码文件 /etc/gshadow

用户配置文件

/etc/login.defs

密码长度,修改时间等的默认值

UID = 500~60000

GUID = 500~60000

/etc/default/useradd

相关的配置可以自己看懂

新用户信息文件 /etc/skel

登录信息 /etc/motd

method of the day

可以改变本地的登录提示信息,希望内部用户看到的信息写到motd里面

文件权限有个粘滞位

[root@lovelock ~]# ls -ld /tmp

drwxrwxrwt. 7 root root 4096 Aug 14 21:40 /tmp

如果一个目录的权限是777,才给它设定粘着位。这样每个用户都可以在这个目录下创建文件,但只能删除自己是所有者的文件。

粘着位=1,t

/etc/group

sys:x:3:bin,adm

组名:组密码位:GID:组内用户列表

添加组

groupadd webadmin

没有什么太大价值

-g用来指定组的ID

用户管理命令

添加用户useradd -g webadmin lovelock

常用选项:

-D 查看缺省参数

-u 设置UID

-g 缺省所属用户组ID

-G 指定用户所属多个组

-d 宿主目录

-s 命令解释器shell

-c 描述信息

-e 指定用户失效时间

gpasswd设置组密码及管理组内成员

-a 添加用户到用户组
add

-d 从用户组中删除用户
delete

-A 设置用户组管理员
Administrator

-r 删除用户组密码
remove

-R 禁止用户切换为该组

用户切换组可以用的命令

先切换到该用户

newgrp 组名

提示输入密码

完成

如果需要同时使两个或两个以上的用户对一个目录有写权限或其他特殊权限,就需要新建一个组,使这两个用户都属于这个用户组,使该用户组对这个目录有相应的权限。

Solaris和Aix中没有gpasswd这个命令

用户组管理命令

groupmod -n 改变组名

groupmod -g 改变组ID

如把webadmin组该名称apache

groupmod -n ngix webadmin

用户管理命令

pwck 检测/etc/passwd文件

如果多个人用vi对一个文件进行写操作就不能锁定文件,造成写混乱

而如果用vipw就可以锁定passwd文件,一个用户在编辑时其他用户就无法再同时进行编辑,不会造成混乱

id 查看用户ID和组信息

su - username和su username的区别

前者会把用户当前所在目录和搜索路径切换到要目标用户的宿主目录和搜索路径,而后者不会。如下

[root@lovelock ~]# su - frost

[frost@lovelock ~]$ echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/frost/bin

[frost@lovelock ~]$ exit

logout

[root@lovelock ~]# su frost

[frost@lovelock root]$ echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

即su -会切换环境变量,而su不会

passwd -S username 查看用户的密码状态,即对/etc/shadow/中的文件进行的提取

[root@lovelock ~]# passwd -S frost

frost PS 2012-08-14 0 99999 7 -1 (Password set, MD5 crypt.)

锁定用户,因为可能一个用户很久没有登录了,或可能有违规操作,需要禁用。原理是MD5加密生成的255位的字符串,加密后就会在前面多加两个叹号,这时密码就无法验证,所以就被锁定了。

passwd -l jack或usermod -L jack

恢复用户锁定

passwd -u jack或usermod -U jack

who可以查看登录的用户,w可以看到更详细的信息,是用远程登录还是直接登录,该用户在执行的命令都可以看到

vigr可以在编辑/etc/group时锁定该文件

可以用find命令查找在删除某个用户后隶属于该用户的文件

find /home -user jack -ok rm {} \;

chage -l jack

[root@lovelock ~]# chage -l frost

Last password change : Aug 14, 2012

Password expires : never

Password inactive : never

Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 7

启用或停用shadow功能

pwconv/pwunconv

grpconv/grpunconv

authconfig

批量添加用户

newusers 导入用户信息文件

pwunconv 取消shadow password功能

chpasswd 导入密码文件(格式:用户名:密码)

然后pwunconv

然后导入用户的密码文件比如

newuser < user.info

pwunconv

chpasswd < passwd.info

pwconv

这时redhat自带的,比较麻烦,简单的是写一个shell脚本。

用户授权

限制用户su为root

新建一个用户组,将/bin/su权限中的其他人位设置为0,再将需要的用户添加到该组。

sudo在执行sudo命令时临时成为root

不会泄漏root口令

仅向用户提供有限的命令使用权限

sudo不仅可以授权用户执行root可以执行的命令,也可以让普通身份以root身份执行任何命令。命令可以精确化,选项可以指定。关键

案例

让普通用户完全管理apache

1、编辑Apache的配置文件

2、使用Apache的启动脚本

3、更新网页

以上的权限

1、a设置用户为配置文件的所有者 chown

b改变文件的所属组,把用户加入该组,授予该组写权限

cvisudo用户 地址=/bin/vi /etc/httpd/conf/httpd.conf

2、start reload fullstatus configtest

3、/var/www/html 改变所有者

权限授予可以精细化,精确到参数

useradd lisi

usr/bin/passwd有一个特殊的权限

[root@lovelock etc]# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 30768 Feb 22 19:48 /usr/bin/passwd

s=set uid

当一个可执行程序具有setuid权限的时候,用户执行这个程序时 ,就会以这个程序的所有者执行

chmod u+s 可以授予setuid权限

4755

必须是可执行的才会如此,如果不是它会是大写的S,这是一种警告。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: