linux用户以及权限

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

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

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

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

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


权限:

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 ,如需转载请自行联系原作者


相关文章
|
2月前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
54 2
|
1月前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
45 1
linux特殊权限!!
|
2月前
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
75 11
|
2月前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS
|
2月前
|
网络协议 Linux 网络安全
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
|
2月前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
30 0
|
4月前
|
存储 安全 Linux
Linux权限之谜:一步步教你如何解锁sudo权限并窥视/etc/shadow的神秘面纱!
【8月更文挑战第22天】在Linux中,`sudo`命令让授权用户能以其他用户(通常是root)身份运行命令。关键的安全文件`/etc/shadow`存储用户密码哈希,仅root可读。要使用`sudo`,需确保账户被列入`sudoers`文件中。系统管理员可通过`visudo`编辑此文件来赋予用户权限,例如添加`username ALL=(ALL) NOPASSWD: ALL`行。获得`sudo`权限后,可运行`sudo cat /etc/shadow`查看文件内容,但需谨慎操作以免影响系统安全。遵循最小权限原则,确保安全使用这些强大工具。
116 2
|
4月前
|
Linux 数据安全/隐私保护
在Linux中,什么是文件权限?什么是rwx权限模型?
在Linux中,什么是文件权限?什么是rwx权限模型?
|
4月前
|
Unix Linux Shell
Linux 权限简介
Linux 权限简介
47 1