linux权限控制是以用户组为单位的,可以结合某文件的权限进行说明。
多用户多任务概念
单用户多任务:比如以用户A登录系统,打开gedit编辑文件、打开xmms听音乐、打开msn了解朋友动态等
多用户多任务:其他人以其他用户登录同一系统,做其他任务
多用户,并非大家同时挤到一接在一台机器上的键盘和显示器前来操作,他们可以是通过远程登录进行。
用户类型:
超级用户(root,UID=0)
普通用户(UID=500~60000)
伪用户(UID=1~499)
1、伪用户与系统和程序服务相关,如:
bin、deamon、shutdown、halt等,任何linux默认都有这些伪用户
mail、news、games、apache、ftp、mysql、sshd等,与具体的linux服务进程相关
2、伪用户通常不需要或无法登录系统
3、可能没有宿主目录
配置文件:
用户信息文件:/etc/passwd
密码文件:/etc/shadow
用户组文件:/etc/group
用户组密码文件:/etc/gshadow
用户配置文件:/etc/login.defs
---------------------------------
/etc/default/useradd
新用户信息文件:/etc/skel
登录信息: /etc/motd、/etc/issue
---------------------------------
/etc/passwd文件格式
第一字段:用户名(也被称为登录名);在上面的例子中,我们看到这两个用户的用户名分别是 root和bin;
第二字段:口令;在例子中我们看到的是一个x,其实密码已被映射到/etc/shadow 文件中;
第三字段:UID ;请参看本文的UID的解说;
第四字段:GID;请参看本文的GID的解说;
第五字段:用户名全称,这是可选的,可以不设置;
第六字段:用户的家目录所在位置;root这个用户是/root,而linuxsir:x这个用户是/home/linuxsir;
第七字段:用户所用SHELL 的类型,root和linuxsir 都用的是sh ,所以设置为/bin/sh ;
/etc/shadow 的内容格式
包括9个段位,每个段位之间用:号分割;
第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的;
第二字段:密码(已被加密),如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的;
第三字段:上次修改口令的时间;这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;
第四字段:两次修改口令间隔最少的天数;如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令;此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;
第五字段:两次修改口令间隔最多的天数;这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;
第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;
第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;
第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用;
第九字段:保留字段,目前为空,以备将来Linux发展之用; 如果更为详细的,请用 man shadow来查看帮助
手工添加用户
分别在/etc/passwd、/etc/shadow添加一条记录;/etc/group添加或修改1条记录
创建用户宿主目录
在宿主目录添加默认的配置文件,拷贝修改
设置用户初始密码
SetUID
当一个可执行程序具有SetUID权限,用户执行时,程序将把当前用户当做程序所有者的身份执行
passwd命令就具有SetUID权限,所有不同用户执行时,可以修改自己的密码
但如何使程序具有SetUID权限呢?????
chmod u+s
chmod g+s
chmod o+t
添加用户命令useradd
useradd设置选项用户名-D查看缺省参数
u:UID
g:GID
d:宿主目录
s:命令解释器
c:描述信息
e:用户失效时间
passwd sam,修改密码
用户组:具有某种共同特征或权限的用户集合起来就是用户组(Group)
用户和用户组的对应关系:1对1、1对多、多对多、多对1
/etc/group 内容格式
/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),以行为单位存放用户组,每个用户组格式如下:
group_name:passwd:GID:user_list
分四个字段:
第一字段:用户组名称;用户登录时所在的组,一般shell提示符中有
第二字段:用户组密码; 一般不适用
第三字段:GID
第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;
用户组管理命令
groupadd -g 888 userg
groupdel userg
groupmod -n new old改名
gpasswd
-a:添加用户到组
-d:从组中删除用户
-A:设置组管理员
-r:删除组密码
-R:禁止用户切换为该组
修改用户信息
usermod
usermod -l sam -d /home/sam -g webad hosta将用户hosta登录名改为sam,添加到组webad,用户目录改为/home/sam
usermod -G sfgrp sam将用户添加到sfgrp组中
用户管理命令
pwck 检测/etc/passwd文件(锁定文件)
vipw 编辑/etc/passwd文件
id 查看用户id和组信息
finger 查看用户详细信息
su 切换用户(环境变量切换)
passwd -S 查看用户密码状态
who、w 查看当前登录用户信息
用户组管理命令
groups 查看用户隶属于哪些组
newgrp 切换用户组
grpck 用户配置文件检测
chgrp 修改文件所属组
vigrp 编辑/etc/group文件(锁定文件)
用户组权限示例
授权用户jack、mary对目录/sdir写权限
groupadd softadm
usermod -G softadm jack
gpasswd -a mary softadm
chgrp softadm /sdir
chmod g+w /sdir
ls -ld /sdir
drwxrwxr-x 2 root softadm 512 Jul 11 22:10 /sdir
grep softadm /etc/groupadd
softadm::100:jack,mary
禁用、恢复用户
禁用 usermod -L username; passwd -l username
恢复 usermod -U username; passwd -u username
userel
用户密码管理
change
-l 查看密码设置
-m 密码修改最小天数
-M 密码修改最大天数
-d 密码修改最后日期
-I 密码过期后,锁定账户天数
-E 设置密码过期日期
-W 密码过期前提前几天提醒
启动、停用shadow功能
pwconv/pwunconv
gpwconv/gpwunconv
system-config-users
authconfig、/etc/sysconfig/authconfig
newusers 导入用户信息文件
pwunconv 取消shadow passwd功能
chpasswd 导入密码文件(格式 用户名:密码)
pwconv 将密码写入shadow文件
限制用户su为root
groupadd sugroup
chmod 4550 /bin/su
chgrp sugroup /bin/su
ls -l /bin/su
-r-sr-x--- l root sugroup 18360 Jan 15 2011 /bin/su
设定后,只有sugroup组的用户才能使用su
useradd hul
passwd hul
usermod -G sugroup hul
用sudo代替su(执行sudo,临时成为root;不会泄露root口令;仅向用户提供有限的命令使用权)
配置文件:/etc/sudoers,编辑配置文件命令visudo,普通用户使用sudo
格式: 用户名 (组名) 主机地址=命令(绝对路径)
阅读(1095) | 评论(0) | 转发(0) |