标签:linux 用户与权限
一.Linux用户与组,在Linux系统中可以有多个用户与多个任务,Linux是多用户多任务的系统,不同用户间互不干扰。
在Linux系统中每个用户都有唯一的UID,每次用户登录系统都会在/etc/passwd下进行比对在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。
1.用户的分类
在Linux中用户可分为三类:
管理用户:在系统中有至高无上的权利,可执行任意的操作,可访问任意资源。
系统用户:这类用户不可以登录系统,是系统自身拥有的,为了系统进程能顺利运行。
普通用户:可以登录系统,只可以访问自己目录下的资源。
2.组的分类
在Linux中组可以分为三类:
1、管理员组和普通用户组。
2、基本组和附加组:一个用户可以属于多个组,比如Kim基本组为A,同时又可以属于B,C,就是一对多。
3、私有组和公共组:私有组就是一个组里只有一个用户。
3.用户ID与组ID
在Linux中每个用户和组都有自己的ID,用户ID=UID,组ID=GID。在Linux6中管理用户的ID是0,系统用户的ID是1-499,登录用户的ID是500-60000。在Linux7中,系统用户ID是1-999,登录用户ID是1000-60000,管理用户还是0.
4.用户与组的信息保存的文件路径:
用户信息保存在/etc/passwd
组信息保存在/etc/group
用户密码保存在/etc/shadow
组的密码保存在/etc/gshadow
/etc/passwd每个字段的意义:
用户:影子密码:UID:GID:注释信息:用户的家目录:用户所用的shell
/etc/group
组名:组密码:组ID:以本组为附加组的用户
/etc/shadow
用户:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期限:过期期限:保留字段
/etc/gshadow
组名:组密码:组管理者:组成员
5.组管理命令:
groupadd,groupmod,groupdel
1、groupadd的用法:
groupadd -g group 指定组的ID
-r group 创建系统组
2、groupmod的用法:
groupmod -g group 更改组ID
-n group 修改组名
3、groupdel的用法
groupdel group 删除组
4、gpasswd的用法 创建组密码
-a user: 将user添加至指定组中
-d user: 删除用户user的以当前组为组的附加组
-A user1,user2,...:设置有管理权限的用户列表
其中newgrp命令是临时切换到一个加密组中,如果用户本不属于此组,则需要组密码
6.用户管理命令:
useradd,usermod,userdel,passwd
1、useradd的用法:
useradd -u 指定用户ID
useradd -g group username 指定用户的基本组
useradd -G group username 指定用户的附加组
useradd -c username 指定用户的注释信息
useradd -d 指定用户的家目录
useradd -s 指定用户的shell类型
useradd -r 创建系统用户
2、usermod的用法
usermod -u 指定用户ID
usermod -g group username 修改用户的基本组
usermod -G group username 修改用户的附加组
usermod -c username 修改用户的注释信息
usermod -d 修改用户的家目录
usermod -s 修改用户的shell类型
usermod -r 创艰系统用户
usermod -e 指明用户账号过期日期YYYY-MM-DD
usermod -f 设定非活动期限
usermod -L username 锁定用户
usermod -U username 解锁用户
usermod -I username 更改其登录名
注意:usermod不允许修改正在上线的用户的信息,只有确认要被修改的用户不在线才能修改。
7、相关的配置文件:/etc/login.defs,/etc/login.defs,/etc/skel
/etc/login.defs:用来定义创建一个用户时的默认设置,比如指定用户的UID和GID的范围,用户的过期 时间、是否需要创建用户主目录等等。
内容如下:
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 500
UID_MAX 60000
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 500
GID_MAX 60000
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD /usr/sbin/userdel_local
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is overridden with the -m flag on
# useradd command line.
#
CREATE_HOME yes
# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK 077
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes
# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512
/etc/login.defs文件
当我们通过useradd命令不加任何参数创建一个用户后,用户默认的主目录一般位于/home下,默认使用的shell是/bin/bash。
GROUP=100
HOME=/home 表示将新建用户的主目录放在/home目录下。
INACTIVE=-1 表示是否启用帐号过期禁用,-1表示不启用。
EXPIRE= 表示帐号过期日期,不设置表示不启用。
SHELL=/bin/bash 指定了新建用户的默认shell类型。
SKEL=/etc/skel 指定用户主目录默认文件的来源,也就是说新建用户主目录下的文件都是从这个目录下复制而来的。
/etc/skel目录下的内容:
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla(都为隐藏文件,要用 ls-a 命令列出所有)
家目录(/home)下的userhome,是复制此文件生成的。这个文件中包括.bash_profile, .bashrc, .bash_logout。
Useradd命令加“-D”参数后,可以修改配置文件/etc/default/useradd,使用的一般格式为:
useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire ]
每个选项详细含义:
-g 表示新建用户的起始组名或者GID,组名必须为已经存在的用户组名称,GID也必须是已经存在的用户组GID。
-b 指定新建用户主目录的上级目录,也就是所有新建用户都会在此目录下创建自己的主目录。
-s 指定新建用户默认使用的shell。
-f 指定用户帐号过期多长时间后就永久停用。
-e 指定用户帐号的过期时间。
3、userdel的用法
userdel username 删除该用户
userdel -r username 连同家目录一起删除
4、passwd
passwd username 修改密码
-k 保持未过期身份验证令牌
-l 关闭账号密码。效果相当于usermod -L,只有root才有权使用此项。
-u 恢复账号密码。效果相当于usermod -U,同样只有root才有权使用。
-g 修改组密码。gpasswd的等效命令。
-f 更改由finger命令访问的用户信息。
-d 关闭使用者的密码认证功能, 使用者在登入时将可以不用输入密码, 只有具备 root 权限的使用者方可使用.
-S 显示指定使用者的密码认证种类, 只有具备 root 权限的使用者方可使用.
二、权限管理
在Linux中,为了资源的安全与系统的安全就有了权限,不同的用户对不同的文件有不同的权限。
文件不
- rw- r-- r-- 1 root root 0 Dec 8 10:24 .autofsck
1、权限简单认识:
权限一般由10位组成;- rwx rwx rwx
第一列表示文件的类型:
-:表示是普通文件
d:表示是目录
l:表示是链接
c:表示是字符设备(线性访问)
b:表示是块设备(随机访问)
r:即read表示只读
w: 即write表示可写
x: 即execute表示可执行
可读:表示我们能阅读
可写:表示我们可以增加修改内容
可执行:表示这是个程序
前三位表示是属主的权限
中三位表示是属组的权限
后三位表示其他用户的权限
第二列 1: 表示文件的链接数,
第三列 root:表示属主 文件拥有者
第四列 root:表示属组
第五列 0:表示大小
第六列 8 10:24:最近一次修改的时间
第七列 .autofsck:表示隐藏文件
2、权限对文件的意义:
r:可读取文件的内容。
w:可以编辑,新增或者修改文件内容。
x:该文件具有可执行的权限。
2.权限对目录的意义:
r:可以使用ls命令查看目录下的文件列表。
w:表示具有更改该目录结构列表的权限。
x:可以使用ls 命令查看目录下的文件列表,以及可以用cd转换到此目录下。
3.修改权限
u=属主
g=属组
o=其他用户
chmod u=rwx g+r o-r 文件名
u 表示属主,即文件或目录的所有者。
g 表示属组,即文件或目录所属的用户组。
o 表示其他(others)用户 。
a 表示所有(all)用户。
操作符号:
+表示添加某个权限。
-表示取消某个权限。
=表示赋予给定的权限,同时取消文档以前的所有权限。
数字改权限:chmod 777 文件名 第一个 7 代表属主的权限 第二个 7 代表属组的权限 第三个 7 代表其他用户的权限
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
从上面可知道r=4 w=2 x=1
r=4
w=2
x=1
改变权限
chmod 777 /tmp/vitest
drwxrwxrwx 2 root root 4096 Dec 8 16:39 /tmp/vitest
改变属主
chown既可以修改属主又可以修改属组
chown username 文件
chown op /tmp/vitest/
drwxrwxrwx 2 op root 4096 Dec 8 16:39 /tmp/vitest/
chown -R username/group 目录 : 进行递归式的权限更改,也就是将目录下的所有文件、子目录都更新成为指定的用户组权限。
改变属组
chgrp group 文件
chgrp as /tmp/vitest/
drwxrwxrwx 2 op as 4096 Dec 8 16:39 /tmp/vitest/
文件或目录创建时的遮罩码:umask
umask默认是0002或者是0022
创建文件时的权利:666-umask
文件不可以拥有x权限,666-umask有x权限时,系统会自动减一或加一。
目录:777-umask
查看umask码:在命令行直接输入
修改umask码:umask 0002
标签:linux 用户与权限
原文地址:http://vclownv.blog.51cto.com/10273334/1726335