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

Linux-用户及用户权限详解

2015-01-29 13:14 246 查看
用户、组、权限

权限:r,w,x

文件:

r:可读,可以使用类似cat等命令查看文件内容

w:可读,可以编辑或删除此文件

x:可执行,可以命令提示符下当做命令提交给内核执行

目录:

r:可以对此目录执行ls以列出内部的所有文件

w:可以在此目录中创建文件

x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息

用户:UID,/etc/passwd

组:GID,/etc/group

passwd用户都可以看到,不是很危险?

影子口令,密码实际保存在/etc/shadow

组也是有密码的,在/etc/gshadow

用户类别:

1、管理员 UID=0

2、普通用户 UID=1-65535

a)、系统用户 1-499,一般用于某一类服务,一般不允许登陆

b)、一般用户 500-60000,后面就很少用了

用户组类别:

管理员组:

普通组:

系统组:

一般组:

用户组类别:

私有组:我们在创建用户时,如果没有指定所属的组,那么系统会为其自动创建一个与用户名同名的组。

基本组:用户的默认组

附加组(额外组),默认组以外的其他组

进程:tom tom

对象:rwxrw-r-- jerry tom a.txt

若tom不是属主

若tom不是tom组

则是other

/etc/passwd,:之间的含义?

whatis passwd

man 5 passwd

可以得知:

account:登录名

password:密码

UID:

GID:

comment:注释

HOME DIR:家目录

SHELL:用户默认shell

/etc/shadow

account:登录名

encrypted password:加密的密码(密码若是双!,则是锁定不可登陆)

加密方法:

对称加密:加密和解密使用同一个密码

公钥加密:每个密码都成对出现,一个为私钥,一个为公钥(速度慢)

单向加密(散列加密):提取数据特征码,可以由明文得到密文,但是不可以反过来,可以用来做

数据完整性校验。

1、不可逆

2、雪崩效应

3、定长输出

常用的单向加密算法:

MD5:Message Digest,128位的定长输出

SHA1:Secure Hash Algorithm,160位定长输出



添加用户

useradd USERNAME

修改用户的密码

passwd USERNAME

添加后,可以查看/etc/passwd,/etc/shadow

添加用户后,会自动的指定组、存在时间等属性,这些属性都保存在

/etc/default/useradd这个文本文件中,我们可以设置相应的值,比如过期时间的。

添加组

groupadd GRPNAME

/etc/group

用户管理:

useradd,userdel,usermod,passwd,chsh,chfn,finger,id,chage\

useradd [options] USERNAME

-u UID

-g GID(基本组)

-G GID,...(附加组)

-d path 指定其家目录

-s 指定shell路径

useradd -s /sbin/nologin user5 -->无法登陆

注:不知道有哪些shell,可以查看/etc/shells

-m -k(一般两者结合使用,-k不能单独使用)

-M 不创建家目录

-r 添加一个系统用户(UID 1-499,系统用户通常不能登陆系统,没有家目录)

/etc/login.defs

环境变量SHELL:用于保存当前用户默认shell

id USERNAME ->查询用户的UID GID等信息

finger USERNAME,查询用户账号的相关信息

userdel [option] USERNAME

-r:同时删除用户的家目录

usermod :修改用户账号属性

-u UID

-g GID

-a -G GID,加了a就不覆盖附加组,而是追加

-d -m:既指定新的家目录的位置,又将此前的文件移动过去

-l 更改登陆名

-e 指定过期时间

-L 锁定账号,不能登陆

-U 解锁

chfn USERNAME 修改用户的注释信息

chsh USERNAME 修改用户的默认shell

密码管理:

passwd [USERNAME]

--stdin

eg:echo "test" | passwd --stdin test

-l 锁定用户

-u 解锁

-d 删除用户密码

pwck,检查用户账号的完整性

chage:改变密码的各种时间属性

-d:最近一次的修改时间

-E:过期时间

-I:非活动时间

-m:最短使用期限

-M:最长使用期限

-W:警告时间

组管理:

groupadd,groupdel,groupmod,gpasswd

groupadd

-g GID

-r:添加为系统组

groupmod

-g GID

-n GRPNAME

groupdel

gpasswd:为组设定密码,组是不用来登陆系统的,是为了“更改”属组(这个属组是登陆属性,可以退出)

newgrp GRPNAME(newgrp类似login,不是修改组)

练习题:



权限管理:

chown,chgrp,chmod

chown:改变文件属主(只有管理员可以使用此命令)

格式:chown USERNAME file,...

-R:修改目录及其内部文件的属主

--reference=/path/to/somefile file,.. 设置成与参考文件相同的属性

特殊用法:

chown [USERNAME]:GRPNAME file,...

chgrp GRPNAME file,...

-R

--reference

chmod:修改文件的权限

chmod MODE file,...

-R

--reference

修改某类用户或某些类用户权限:

u,g,o,a

chmod 用户类别=MODE file,...

eg:

chmod u=rwx /tmp/abc

chmod g=r,o=r /tmp/abc

chmod go=r /tmp/abc

chmod g=r,o= /tmp/abc

chmod a=r /tmp/abc

修改某些用户的某位或某些位权限

chmod 用户类别+|-MODE file,...

chmod u-x /tmp/abc



eg:

openssl passwd -1 -salt '12345678'

可以帮助我们自动生成一个密码

练习手动添加一个用户?

umask:遮罩码

文件:666-umask

目录:777-umask

若umask:023

文件:666-023=643+1 =644

目录:777-023=754

文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限+1

站在用户登录的角度来说,SHELL的类型:

登录式shell:

正常通常某终端登录

su - USERNAME

su -l USERNAME

非登录式shell:

su USERNAME

图形终端下打开命令窗口

自动执行的shell脚本

bash的配置文件:

全局配置

/etc/profile, /etc/profile.d/*.sh, /etc/bashrc

个人配置

~/.bash_profile, ~/.bashrc

profile类的文件:

设定环境变量

运行命令或脚本

bashrc类的文件:

设定本地变量

定义命令别名

登录式shell如何读取配置文件?

/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非登录式shell如何配置文件?

~/.bashrc --> /etc/basrc --> /etc/profile.d/*.sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: