开发者社区> 技术小甜> 正文

linux用户以及权限

简介:
+关注继续查看

资源,用户和用户组的相关概念:

资源:计算机的计算能力,内存空间等等都可以统称为计算机的资源。

用户:用来标识是否有使用计算机资源的权限

用户组:相当于容器的概念,方便分配权限。


权限:

r w x

文件的权限分为三部分:属主的权限,属组的权限,其他人的权限。

    当用户访问某个文件的时候,系统会先对比用户是否是属主,不是的话会对比用户是否在文件的属组里面,不是的话则使用其他人的权限。


普通文件:

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

w:可写、可以使用命令修改文件里面的内容,也可以删除文件

x:可执行、exacutable、可以在命令提示符下当做命令提交给内核运行


目录:

r:可以显示目录里面的文件

w:可以在目录里面创建文件

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


0    ---    无权限

1    --x    可执行

2    -w-    可写

3    -wx    可写、可执行

4    r--    可读

5    r-x    可读、可执行

6    rw-    可读写

7    rwx    可读写执行


用户:UID, /etc/passwd

用户组:GID,/etc/group


影子口令:

用户:/etc/shadow

组:/etc/gshadow


用户类别:

    管理员用户:0

    普通用户:1-65535

        系统用户:1-499

        一般用户:500-63535


用户组类别:

    管理组:root

    普通组:

        系统组:

        一般组:


用户组类别的另一种分法:(这种比较常用)

基本组:用户的默认组

私有组:系统创建用户时,如果用户没有指定默认组,此时会创建一个与用户同名的私有组

附加组:用户可以同时拥有多个组,除了基本组之外的组就叫附加组。


示例:

    假设一个用户tom,它的属组也是tom,当它使用命令ls 显示/tmp 这个目录,系统的权限对比过程。

    首先系统会查看ls这个命令的权限属性:  -rwxr-xr-x root root   /bin/ls ,然后用对比tom不是root,所以不是属主,然后对比tom是否在用户组root里面(注意:这里并不是对比tom组是否和root组相同,而是对比tom用户是否在root组里面),发现不是,于是查找其他人权限r-x,可读可执行,于是拥有ls的使用权限。 接着显示/tmp的时候,并不是对比/tmp和ls的权限,而是仍然对比tom和/tmp的权限,也就是说当tom取得ls的使用权的时候,它的权限并不会因为ls是root属主而切换。/tmp/的权限为:drwxrwxrwt  root root,逐个对比后拥有其他人权限,权限中包含r,给予显示:

[root@logstach ~]# ls  -al  /bin/ls

-rwxr-xr-x 1 root root 112664 Oct 15  2014 /bin/ls

[root@logstach ~]# ls  /tmp

14ahhs1  25  534  71233bbc  a  a b  kkll568  sadsa*787sdd

[root@logstach ~]# ls  -d /tmp

/tmp

[root@logstach ~]# ls  -dl /tmp

drwxrwxrwt. 3 root root 4096 Dec 25 14:45 /tmp



passwd配置文件格式:

account:登录名

passwd:mima

UID:用户id

GID:组id

comment:注释信息

home dir:家目录

shell:默认shell


/etc/shadow配置文件格式:

account:登录名

encrypted password:加密后的密码

date of last password change:最近一次更改密码的时间

minimum password age:最小密码使用期限

maximum password age:最大密码使用期限

password warning period:密码过期前警告时间

password inactivity period:密码过期后仍能使用时间

account expiration date:用户过期时间

reserved field:保留区域


加密算法:

    对称加密:加密和解密都是统一密码

    公钥加密:加密和解密成对出现,公钥加密,私钥解密

    单向加密:散列加密,提取数据特征码,用于校验数据的完整性

       雪崩效应:一个字符不同,生成的密码大部分字符不一样

       定长输出:

             md5:Message  Digest 128位定长输出

             sha1:Secure Hash Algorithm 160位


单向加密的一个例子:

    linux中保存用户的密码的文件叫shadow,如果我们cat  /etc/shadow 我们会发现密文中的前几位格式都类似这样:$8位密文$定长密文

    这么做的原因就是linux使用单向加密对用户的密码进行加密,当用户登录时,系统把用户输入的密码用加密算法进行加密,然后和/etc/shadow文件里面的密码片段进行对比,从而判断密码是否正确。 但是由于shadow文件对一些用户是可读的,相同的密码加密后的密文是一样的,也就是说,如果碰巧shadow有人的密码片段跟你的一样,那么就可以推断出其密码,这是不符合linux的安全标准的,于是系统在加密密码时随机加入了一些字符,这些字符就是所谓的‘salt’,因为单向加密的雪崩效应,所以即使你们的密码一模一样,只要salt中有一个字符不一样,那么保存在shadow里面的密文也是大部分不一样。根据算法,$$里面那8位就是用来参与加密的‘salt’字符。


用户管理相关命令:

useradd:

    useradd     [option]     USERNAME

        -u    UID

        -g    GID(基本组)

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

        -c    “COMMENT”

        -d    /path/to/homedir

        -s    shell 

        -m -k    -m代表创建家目录,-k代表把/etc/skel目录下的文件(.bashrc..)拷贝到家目录

        -M    不创建家目录

/etc/login.defs:对用户管理命令指定一些默认值,比如是否useradd时默认是否创建家目录等

注意:用户在指定组之前,被指定的组必须存在,否则命令执行失败,当命令执行失败用户也不会生成


/etc/shells:指定了当前系统可用的安全shell


userdel:

    userdel    [option]    USERNAME

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


id:查看用户的账号属性信息

    -u  UID

    -g  

    -G

    -n


finger:查看用户账号信息

    finger USERNAME


usermod:

    -u  uid

    -g  gid

    -a  -G GID:不使用-a选项会覆盖此前的附加组

    -c

    -d -m:-d代表指定新的家目录,-m表示把原来家目录里面的东西拷贝到新的家目录(这是因为指定新的家目录后,用户对原来的家目录下的文件失去了权限)

    -l:改变用户的登录名

    -L:锁定账号

    -U:解锁账号


chsh:修改用户的默认shell


chfn:修改注释信息


密码管理

passwd [USERNAME]

    --stdin:从标准输入中读取密码

    -l:锁定账号

    -u:解锁账号

    -d:删除用户密码

示例:

[root@logstach html]# echo  '123456'|passwd root --stdin

Changing password for user root.

passwd: all authentication tokens updated successfully.


pwck:检查用户账号完整性


组管理:

创建组:groupadd

groupadd

    -g GID

    -r:添加为系统组


groupmod

    -g    GID

    -n    GROUPNAME


groupdel GROUPNAME


gpasswd:为组设定密码

newgrp  GRPNAME <--> exit

注意:newgrp命令是临时切换基本组,可以使用exit退出,当newgrp切换到任何自己的附加组是不需要密码的,当切换到一个新组的时候,如果新组没有设定密码则无法加入,此时用root身份使用gpasswd给用户创建组密码后,用户就可以使用newgrp GRPNEME 输入密码后切换         

 示例:

 

[root@logstach linzb]# su linzb

[linzb@logstach ~]$ touch a

[linzb@logstach ~]$ ls  -l a

-rw-rw-r-- 1 linzb linzb 0 Dec 25 16:50 a

[linzb@logstach ~]$ newgrp  root

Password: 

Invalid password.

[linzb@logstach ~]$ exit

exit

[root@logstach linzb]# gpasswd root

Changing the password for group root

New Password: 

Re-enter new password: 

[root@logstach linzb]# su linzb

[linzb@logstach ~]$ newgrp root

Password: 

[linzb@logstach ~]$ touch b

[linzb@logstach ~]$ ls  -alh b

-rw-r--r-- 1 linzb root 0 Dec 25 16:51 b

      
















本文转自biao007h51CTO博客,原文链接:http://blog.51cto.com/linzb/1727945 ,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
23687 0
Linux文件权限
Linux文件权限
10 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
18328 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
8187 0
+关注
10145
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载