linux用户管理及权限

进程也是有属主和属组的,进程是操作计算机的代理,进程能访问哪些文件(的权限)

取决于发起进程的用户或组或其他用户

安全上下文(secure context)

-rw------- 1 wilson wilson 1246 06-10 19:10 test.txt

属主 属组 其他 

权限:

r,w,x


文件:

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

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

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


目录:

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

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

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


文件最好不给x权限,但是目录一定要给x权限

rwx:

   r--:只读

   r-x:读和执行

   ---:无权限

0 000 ---:无权限

1 001 --x:执行

2 010 -w-:写

3 011 -wx:写和执行

4 100 r--:只读

5 101 r-x:读和执行

6 110 rw-:读写

7 111 rwx:读写和执行


755:rwxr-xr-x

rw-r-----:640


用户:UID 标识符,/etc/passwd 用户名和UID,密码都在此对应

用户组:GID 标识符,/etc/group 


影子口令:

用户:/etc/shadow 用户密码实际在此

组:/etc/gsahdow 组密码实际在此


用户类别:

管理员:UID 0

普通用户:UID 1-65535

系统用户:UID 1-499 不能登录系统,没有家目录

一般用户:UID 500-60000


用户组类别:

管理员组:

普通组:

系统组:

一般组:

用户组类别:

基本组:用户的默认组

私有组:创建用户时,如果没有指定所属组,系统会自动创建以用户名同名的组

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


一个进程以tom属主及tom属组tom运行

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

首先看属主,然后看属组,所以这里是rw-


ls:ls

rwxr-xr-x root root /bin/ls   其他用户r-x,所以能运行起来


[root@localhost wilson]# whatis passwd #看passwd的章节

passwd               (1)  - update user's authentication tokens

passwd               (5)  - password file #说明第5个章节是对passwd文件的说明

passwd              (rpm) - The passwd utility for setting/changing passwords using PAM

passwd [sslpasswd]   (1ssl)  - compute password hashes

[root@localhost wilson]# man 5 passwd 查看第五个章节―关于文件的说明


cat /etc/passwd:

wilson:x:500:500:wilson:/home/wilson:/bin/bash


account:用户名

passwordd:密码,一般是x占位符(密码在/etc/shadow)

UID:

GID:基本组ID

comment:用户注释信息

directory:用户家目录

bash:用户默认shell


cat /etc/shadow

wilson:$1$6zvHjSox$3qPLL0xBr4tG8JLGUzl8y0:16220:0:99999:7:::

account:登录名

ecrypted password:加密的密码 前八位:$.....$中间是杂质,是随机生成的

如果显示!!或*,表示用户是锁定的(锁定用户可以使用此方法)


加密算法:

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

公钥加密:每个密码都成对出现,一个为私钥(secret key),一个为公钥(public key)

单向加密,散列加密:提取数据特征码,可以做数据校验

1、雪崩效应、蝴蝶效应:初始条件的微小变化,会引起结果的巨大变化

2,定长输出

MD5:Message Digest,128位定长输出

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

1,2如下代码所示:cp /etc/inittab ./

[root@localhost wilson]# md5sum inittab 

9d49303d50eb59151fc24eb0e3802232  inittab

[root@localhost wilson]# vi inittab 

[root@localhost wilson]# md5sum inittab 

09525094beeb8a7b356a8ab4291c3283  inittab

[root@localhost wilson]# 


useradd username

root用户:passwd username 修改用户密码

--stdin 从标准输入读取密码(可以接收传递来的用户密码)

echo "redhat" | passwd --stdin hadoop #管道修改用户密码

-d 删除用户密码 (这样用户就不能登录了)


groupadd 组名


用户管理:useradd,userdel,usermod,passwd,chsh,chfn,finger,id,chage

useradd [options] username

-u UID(一般用户ID大于500)

[root@localhost default]# useradd -u 2000 user2

[root@localhost default]# tail -1 /etc/passwd

user2:x:2000:2000::/home/user2:/bin/bash

-g GID 指定必须事先存在基本组

[root@localhost default]# useradd -g mygroup user3

[root@localhost default]# tail -1 /etc/passwd

user3:x:2001:504::/home/user3:/bin/bash

-G GID,...指定额外组(也必须事先存在),可以多个

-c “comment” 指定注释信息

-d /path/to/directory 指定家目录

[root@localhost default]# useradd -c "tony blare" -d /home/blare user5

[root@localhost default]# tail -1 /etc/passwd

user5:x:2003:2003:tony blare:/home/blare:/bin/bash

-s 指定使用的shell路径,

[root@localhost default]# useradd -s /sbin/nologin user6 #nologin

[root@localhost default]# su user6

This account is currently not available.#这样用户就不可以切换了

-M 不给用户创建家目录

-r 添加一个系统用户(ID 1-499)


userdel [option] username #删除用户时不指定删除家目录,默认是不会删除的

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


修改用户账号信息:(跟用户添加的选项一样使用)

usermod [option] username

-u UID

-g GID

-G -a GID追加附加组,不使用-a会覆盖此前的附加组

-d -m:既指定新的家目录,又把此前家目录文件复制过去(-m)

-L 锁定用户账号

-U(大写) 解锁账号


id [option] username:查看用户的账号属性信息(不加选项,显示当前用户的账号信息)

-u:只看uid

-n:显示名称


finger username查看用户账号信息(邮件等)


pwck:检查用户账号完整性


组管理:groupadd,groupdel,groupmod,gpasswd

groupadd:

-g 指定GID

-r 添加为系统组


groupmod

-g 修改gid

-n 修改组名


groupdel 删除组

gpasswd:为组设定密码


练习:

1、创建一个用户mandriva,其ID为2002,基本组为distro(组ID为3003),附加组为linux

#groupadd -g 3003 distro

#groupadd linux

#useradd -u 2002 -g distro -G linux mandriva

2、创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh

#useradd -c "Fedora Community" -s /bin/tcsh fedora

3、修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora

useradd -u 4004 -g linux -G distro,fedora mandriva

4、给fedora加密码,并设定其密码最短使用期限为2天,最长为50天

passwd -n 2 -x 50 fedora

5、将mandriva的默认shell改为/bin/bash

usermod -s /bin/bash mandriva

6、添加系统用户hbase,且不允许其登陆系统

useradd -r -s /sbin/nologin hbase



权限管理:chown,chgrp,chmod,umask 

三类用户:

u:属主

g:属组

o:其他用户


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

chown username file,.....

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

--reference=/path/to/somefile file,.... 改为属主跟哪个文件的属主一样


chgrp: 用法跟chown一样

-R

-reference=/path/to/somefile file,.....


同时改变属主,属组

chown username:grpname file,....

chown username.grpname file,....


修改文件权限:chmod

修改三类用户的权限:

chmod (-R) mod file,.....

修改某类用户权限:

chmod 用户类别=mod file,.... #chomd u=rwx /tmp/abc

chmod g=rx,o= /tmp/abc


修改某类用户的某位权限:

chmod 用户类别+/-mod file,.... #chomd u+r /tmp/abc


练习:

1、新建一个没有家目录的用户openstack

useradd -M openstack

2.复制/etc/skel为/home/openstack

cp -r /etc/skel /home/openstack

3、改变/home/openstack及其内部文件的属主属组均为openstack

chown -R openstack:openstack /home/openstack

4、/home/openstack及其内部的文件,属组和其他用户没有任何访问权限

chmod -R go= /home/openstack


umask :遮罩码

umask

umask 022

文件:666-022=644 文件默认无执行权限,所以是666

目录:777-022=755


站在用户的角度来说,shell的类型:

登录式:

正常通常某终端登陆

su - username

su -l username

非登陆式:

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/bashrc->/etc/profile.d/*.sh


你可能感兴趣的:(linux,用户,计算机,上下文,详细信息)