现在的位置: 首页 > 综合 > 正文

Linux学习笔记(四)

2013年10月29日 ⁄ 综合 ⁄ 共 2315字 ⁄ 字号 评论关闭

Linux系统权限管理

ls -l可以查看文件信息。其中包括文件权限、所有者、组

除了文件类型位,之后有9位表示文件的权限。分为三组。
第一组是所有者操作权限
第二组是组成员操作权限
第三组是除了所有者、组之外的其他用户权限

rwx     rwx      rwx
user  group  other

r 4 read读取
w 2 write写入
x 1 exec执行
- 0

644 rw- r-- r--
rwxr-xr-x  755

字符表示方法和8进制数字表示方法进行转换的方法是
将r、w、x转换为相对应的数字后计算和、每三位得到一个结果。
如果从数字转换到字符,则可以逆向推导,由于和的结果只能由固定数字运算获得,所以不会产生错误。

chmod命令更改文件权限,但首先要有该文件的操作权限(属于所有者,或是root)

更改权限方法
chmod  755  install.log (rwxr-xr-x)
chmod 644 /opt -R  (递归修改制定目录下的所有文件为指定权限)

通过字符指定权限位
u——用户位
g——组
o——其他
a——所有
+——增加权限
-——去除权限
=——指定权限

install.log(原来是644  rw-r--r--)
改成755 rwxr-xr-x
chmod  a+x  install.log
chmod  g-w install.log

权限位对于目录来讲,
r可以读取目录内容
w可以创建或删除目录里的文件
x表示可以通过cd命令进入目录

t权限位,允许所有用户在此目录中创建和删除自己的文件(T表示未生效)t位是为目录使用的。
chmod 1777 mydir

粘滞位s
如果设置为s位,则执行此命令的用户,是以此命令所有者身份执行。s位是为执行程序使用的。

chmod u+s  myexec

=====================

用户与组管理
系统中用户相当于是职员,组相当于是部门。
一个用户可以属于多个组,每个组可以有多个用户。

ls -l 查看文件的所有者(即用户),组

用户配置文件
/etc/passwd 存放用户信息
/etc/shadow 存放密码相关信息

passwd文件格式
可以使用man手册查询passwd配置文件的格式。
man  5  passwd

passwd文件中,每一行代表一个账号信息。使用:进行分段
第一列——账号(用户名)
第二列——密码,x表示密码在shadow文件里
第三列——UID,用户标识号,唯一
第四列——GID,初始化组标识编号。(用户在创建文件时,会将此GID写入到文件的组权限位置)。
第五列——用户描述信息
第六列——家目录
第七列——用户登录后所使用的shell程序。

shadow文件格式
第一列——登录名(与passwd对应)
第二列——密码
第三列——从1970.1.1到最后一次修改密码的天数
第四列——修改密码间隔的天数
第五列——密码必须更改天数
第六列——密码过期前多少天显示警告
第七列——密码过期后多少天无法登录
第八列——指定具体天数禁止登录,从1970.1.1计算
第九列——保留

useradd 增加用户
usermod 修改用户信息
userdel 删除用户
passwd   修改用户密码

创建用户后,必须指定密码,才能使用户登录系统。
useradd  michael
passwd  michael

删除用户时,使用-r选项可以同时删除用户的家目录
否则,只是将用户的账号在passwd和shadow中去除。
userdel  michael
userdel -r  michael

用户组group
/etc/group
/etc/gshadow

组配置文件内容
第一列——组名称
第二列——密码,x表示密码在gshadow中
第三列——GID,组标识号。唯一
第四列——组内用户

gshadow文件内容
第一列——对应的组名称
第二列——密码,用于组管理员设置密码
第三列——管理员用户列表
第四列——成员用户列表

newgrp切换组临时到其他组中
newgrp   root

gpasswd设置组密码,及指定组管理员和成员
gpasswd -A nicolas -M michael  michael
gpasswd michael  (组管理员设置组密码)

查看当前用户所属组使用groups命令

groupadd
groupmod
groupdel

增加组
groupadd  develop
groupadd -g 1024  manage(-g  指定gid)

删除组使用groupdel,但此组中必须为空,没有用户才可以删除。

修改组名称,使用groupmod -n
groupmod  -n  devel  develop
将原名为develop 改为devel

useradd
-g   指定初始化组(此用户在创建文件时,写在组权限位置的组名)只能指定一个
-G   可以指定多个组名,使用户属于多个组
-m  在创建用户时,同时创建家目录
-M  不创建家目录
-d   指定家目录位置
-u  指定用户uid
-s  指定登录shell

useradd  tom  -u  1999  -d  /tmp/tom  -g  root  -G  nicolas,michael  -m

usermod -d /home/kate kate
修改kate用户的家目录位置,但系统不会自动将原来目录移动到目的位置。

usermod -g  nicolas  kate
修改kate的初始化组为nicolas组

练习:
创建develop组
创建manage组
创建tom用户,属于develop组,家目录在/tmp/tom目录下,强制创建家目录,其uid为1001
创建lucy用户,属于manage组,家目录在/home/lucy目录下,但不创建家目录,辅助组为develop
修改develop组名为devel。
指定tom为manage组的管理员,lucy为manage组成员,并设置密码

抱歉!评论已关闭.