用户和账号

chage、useradd、passwd、usermod、userdel、groupadd、gpasswd、groupdel、groups、

用户账号初始配置文件     .bashrc    .bash_profile    .bash_logout

finger、w、who、users             chmod、chowd、umask、last

1.用户的分类
Linux 用户三种角色

超级用户: root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有至高 无上的权限,类似于 Windows 操作系统中的 Administrator 用户。只有当进行系统 管理、维护任务时,才建议使用 root 用户登录系统,日常事务处理建议只使用普 通用户账号。
root 拥有对系统的最高的管理权限 ID=0

普通用户:普通用户账号需要由 root 用户或其他管理员用户创建,拥有的权限受 到一定限制,一般只在用户自己的宿主目录中拥有完整权限
系统用户 UID:1-999(centos7 版本) 1-499(centos6 版本) 
UID:即每个用户的身份标示,类似于每个人的身份证号码.

程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运 行,如 bin、daemon、ftp、mail 等
伪用户 一般不会用来登录系统的,它主要是用于维持某个服务的正常运行.如:ftp,apache

UID:即每个用户的身份标示,类似于每个人的身份证号码.
管理员组:root, 0
普通组:GID
    系统组:1-499(CentOS6), 1-999(CENTOS7)
    普通组:500+(CentOS6), 1000+(CENTOS7)

表示该账户需要密码才能登录,为空时,账户无须密码即可登录


组账号
基本组:基于某种特定联系(如都需要访问 FTP 服务)将多个用户集合在一起,即构成一个用
户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组);

附加组:若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。

例如,用户 zhangsan 是技术部的员工,与部门内的其他同事同属
于基本组 tech,后来因工作安排需要,公司将 zhangsan 加入邮件管理员组 mailadm,则此
时用户 zhangsan 同时属于 tech、mailadm 组,tech 组是其基本组账号,而 mailadm 组是
其附加组账号。
对组账号设置的权限将适用于组内的每一个用户账号。

简说:
主要组 必须要一个组 有且唯一
附加组 可有可无 有可以有多个
默认行为当你创建一个新用户时会自动创建一个和之同名的主组

2.passwd文件账号记录详细说明

root:x:0:0:root:/root:/bin/bash
详解如下:
root:用户名,用户名仅是为了方便用户记忆。Linux系统是通过UID来识别用户,分配用户权限。
x:表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件
Linux系统把真正的加密密码串放置在/etc/shadow文件中,此文件只有root用户可以浏览和操作,最大限度地保证了密码的安全。(没有密码是!!)
补充:
注意!!!,虽然"x"并不表示真正的密码,但也不能删除,如果删除了 "x",那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以)。
0:用户账号的 UID 号。
0:所属基本组账号的 GID 号
root:描述性信息,此字段只是用来解释这个用户的意义而已
/root:宿主目录,即该用户登录后所在的默认工作目录
注:通常称为用户的主(家)目录。例如:root主目录为/root,普通用户odysee的主目录为/home/odysee
/bin/bash录 Shell 等信息,用户完成登录后使用的

/etc/shadow(影子文件)
/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性

和 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 ":" 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段

第一列:账户名
第二列:存放真正加密的密码,采用SHA512散列算法,更加安全  加密原来用MD5 或 DES
!!和*表示没有密码不能登陆,新创建用户也是!!,如果密码前面显示双感叹号表示该账户被锁定了

第三列:上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是linux的诞生日,date -d "1970-01-01 18983  days"可以查看哪一天改过
第四列:多久之后才可以修改密码,如果是 0,则密码可以随时修改最小修改间隔时间 ,也就是说 该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是0 则随时修改密码,如果是10 则代表密码修改后10天之内不能再次修改密码,此字段是为了针对某些人频繁更改账号密码而设计的。

第五列:密码有效期,默认99999(273年),表示永久生效

第六列:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出 "修改密码" 的警告信息

第七列:密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。比如说,此字段规定的宽限天数是10,则代表密码过期10天后失效;如果是0 则代表密码过期后立即失效;如果是 -1 则代表密码永远不会失效
第八列:账号失效时间,使用自  1970 年 1 月 1 日以来的总天数作为账户的失效时间
第九列:保留,未使用

chage命令:用来修改帐号和密码的有效期限,针对目前系统已经存在的用户
chage   [选项]   用户名

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。chage -M 60 root
-W:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

例:chage -E 2019-04-29 test     //其中,test为用户,用户将在2019年4月29日失效(不可登录)
chage -d 2019-06-30 test             //设置test用户最后一次修改密码的日期为2019年6月30日
chage -d 0 test                           //则代表该test用户需立即修改密码

date -d "+45 days" -u                 //如果不知道时间可以用date查看
-u:UTC时间
[root@localhost ~]# chage -l  root
最近一次密码修改时间                    :从不
密码过期时间                    :从不
密码失效时间                    :从不
帐户过期时间                        :从不
两次改变密码之间相距的最小天数        :0
两次改变密码之间相距的最大天数        :99999
在密码过期之前警告的天数    :7


总结:

            第三个字段为:密码最后一次修改的时间      (chage -d)

            第四个字段为:密码最小修改间隔时间         (chage -m)

            第五个字段为:密码的有效期                       (chage -M)

            第六个字段为:密码需要变更前的警告天数  (chage -W)

            第七个字段为:密码过期后的宽限天数         (chage -I)

            第八个字段为:账号失效时间                       (chage -E)

组的分类
当一些用户需要做同一件事情的时候,把他们加到一个组中便于管理
1、基本组,一般新建用户的时候会随用户自动创建,与用户同名
2、附加组,一般一个用户可以有0个或多个附加组
一个用户只有一个基本组,可以有多个附加组

为什么会创建家目录?为什么会UID从1000开始,UID最大是多少?
是由于/etc/login.defs这个文件中的配置决定的           60000

useradd   [选项]  用户

添加用户账号
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。  
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。 
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。 
-g:指定用户的基本组名(或使用 GID 号)。 
-G:指定用户的附加组名(或使用 GID 号)。 
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录。 
-s:指定用户的登录Shell。        useradd   -s   /sbin/nologin    用户           //不能登录系统

useradd zhangsan
id zhangsan
tail -1 /etc/passwd                                       -s  /sbin/nologin      会有!!
tail -1 /etc/shadow
ls /home

创建一个辅助管理员账号 admin,将其基本组指定为“wheel”,附加组指定为“root”,宿主目录指定为“/admin”
useradd -d /admin -g wheel -G root admin
id admin

在账号管理工作中,有时候会希望在新建账号的同时指定该账号的有效期限,或者要求 新建的账号不能登录系统(如仅用于访问 FTP 服务),这时可分别使用“-e”和“-s”选项。例如, 执行以下操作可以创建一个名为 lisi 的 FTP 账号(禁止终端登录),该账号将于 2021-12-31 失效
useradd -e 2021-12-31 -s /sbin/nologin lisi

useradd -M zhang 
useradd -u 666 san

passwd命令

passwd    [选项]    用户
扩充
#调用管道符,给 zhangsan 用户设置密码 "123",为了方便系统管理,passwd 命令提供了 --stdin 选项,用于批量给用户设置初始密码。
echo "123" | passwd --stdin zhsngsan      修改用户密码


-d:清空指定用户的密码,仅使用用户名即可登录系统。          passwd -d zhang
-l:锁定用户账户。                                                                     passwd -l zhang
-S:查看用户账户的状态(是否被锁定)。                                passwd -S zhang
-u:解锁用户账户。                                                                    passwd -u zhang

usermod命令
参数
 -l:更改用户账号的登录名称(Login Name)。  
 -L:锁定用户账户。    
                               cat /etc/passwd |grep  admin  会有1个!
 -U:解锁用户账户


-u:修改用户的 UID 号。  
-d:修改用户的宿主目录位置。 
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。  
-g:修改用户的基本组名(或使用 GID 号)。 usermod -g  新组名  用户名
-G:修改用户的附加组名(或使用 GID 号)。 usermod -a  组名 -G 附加组名    
-s:指定用户的登录 Shell。              usermod -s  /bin/bash 用户

mv /admin /home/
usermod -d /home/admin admin
cat /etc/passwd|grep admin
先设置admin密码 ,一般centos7如不设置密码账号不能锁定
passwd admin
usermod -L admin
passwd -S admin
usermod -U admin
usermod -l webmaster admin 
grep "admin" /etc/passwd
-a表示在原来所属组的基础上追加

userdel命令

userdel  [-r]  用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
id zhangsan
userdel -r zhangsan
ls -ld /home/zhangsan


用户账号的初始配置文件

添加一个新的用户账号后,useradd 命令会在该用户的宿主目录中建立一些初始配置文 件。这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件,较常用的初始配置文件 包括“~.bash_logout”、“~.bash_profile”和“~.bashrc”。其中,“.bash_profile”文件中的命令将在该 用户每次登录时被执行;“.bashrc”文件中的命令会在每次加载“/bin/Bash”程序(当然也包括登 录系统)时执行;而“.bash_logout”文件中的命令将在用户每次退出登录时执行。

理解这些文件的作用,可以方便我们安排一些自动运行的后台管理任务。 在“.bashrc”等文件中,可以添加用户自己设置的可执行语句(如 Linux 命令行、脚本控 制语句等),以便自动完成相应的任务。

如果希望为所有用户添加登录后自动运行的命令程 序、自动设置变量等,可以直接修改/etc 目录下的类似文件,如/etc/bashrc 文件、/etc/profile 文件。例如,执行以下操作可以为所有用户自动设置 myls 命令别名
vim  ./bashrc
alias myls='ls -lh'          
source  ./bashrc
myls


用户账号的初始配置文件
1   .bash_profile:示例代码中为用户添加了2个环境变量(JAVA_HOME和CLASSPATH),并修改了已有环境变量PATH的值.(PATH的查找是从前开始查找,找到就返回)
CLASSPATH环境变量的值是在JAVA运行时查找加载类的默认classpath.

2  .bashrc :例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)。
每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。

一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了。
关于环境变量的读取顺序:
用户登录 ->> 加载~/.bash_profile --> bash_profile中配置了首先是使~/.bashrc生效

.bash_logout 
用途: 用户登出时执行的命令

ls -a       查看隐藏文件

vim  .bash_logout

# 在当前用户登出时,打印出Logout 和当前的时间
echo "Logout, `date`" 

例子:
如果需要每个用户登出时都清除输入的命令历史记录,可以在/etc/skel/.bash_logout文件中vim .bash_logout  添加下面这行删除history目录rm -f $HOME/.bash_history 。这样,用户每次注销时,  .bash_history文件都会被删除.             

hsitory -c             清楚历史记录
echo "history -c" >> ~/.bash_logout           或者直接vim  .bash_logout  在最后添加history -c

组账号文件

与组账号相关的配置文件也有两个,分别是/etc/group /etc/gshadow。前者用于保存 组账号名称、GID 号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息(但 是很少使用到)。某一个组账号包含哪些用户成员,将会在 group 文件内最后一个字段中体 现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用“,”(逗号)分隔
grep "^root" /etc/group  #//检索root 组包括哪些用户
grep "root" /etc/group  //检索哪些组包括root 用户

cat  /etc/passwd | grep root

groupadd命令
groupadd  [-g GID]  组账号名
groupadd -g 1200 market
tail -1 /etc/group

gpasswd命令      添加删除组成员
-a:添加用户到组             gpasswd -a  用户名  组名
-d:从组删除用户             gpasswd -d  用户名  组名
-A:指定管理员
-M:指定组成员和-A的用途差不多     gpasswd  -M  zhangsan,lisi  group2
-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

useradd mike
gpasswd -a mike root           #确认mike 用户已加入 root 组
groups mike    

gpasswd -d mike root          #//确认mike 用户已退出 root 组
正在将用户“mike”从“root”组中删除

gpasswd -M root,daemon,webmaster,mike group1 
grep "^adm" /etc/group1 
adm:x:4:root,daemon,webmaster,mike

groupdel命令
groupdel   组账号名
groupdel market
grep "market" /etc/group

groups命令

groups    用户名
groups adm

id 用户          也可以看属组

finger命令   #查询用户账号的详细信息
finger    用户名


w、who、users #查询已登录到主机的用户信息
通常使用tty来简称各种类型的终端设备,Centos7系统, tty1表示图形界面,tty2-tty6表示 文字界面,可以用Ctrl+Alt+F1-F6切换。

按Ctr1+A1t+F2登陆, 执行w命令,查看使用的终端就是tty2

User:登录用户名
TTY:登录后系统分配的终端号
From:远程主机名,即从哪登录的
login@:何时登录
IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。
JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
PCPU:当前进程所占用时间
WHAT:当前正在运行进程的命令行

pts说明是用远程工具连接的,比如1xshell,后面的数字代表登录的时间顺序,越小证明登录的越早

查看目录和文件的属性
root 用户、root 组
如“drwxr-xr-x”和“-rw-r--r--”。权限字段由四部分组成,各 自的含义如下所述。  
第 1 个字符:表示该文件的类型,可以是 d(目录)、b(块设备文件)、c(字符设备文 件)、“-”(普通文件)、字母“l”(链接文件)等。

第 2~4 个字符:表示该文件的属主用户(User)对该文件的访问权限。  
第 5~7 个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限。  
第 8~10 个字符:表示其他任何用户(Other)对该文件的访问权限。  

第 11 个字符:这里的“.”与 SELinux 有关,目前不必关注

          
上述格式中,字符组合“[ugoa…][+-=][rwx]”或数字组合“nnn”的形式表示要设置的权限模 式。其中,“nnn”为需要设置的具体权限值,如“755”“644”等;而 “[ugoa…][+-=][rwx]”的形 式中,三个组成部分的含义及用法如下所述。
“ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主“g”代表文件属组内的用户,“o”代表其他任何用户,“a”代表所有用户(u、g、o 的总和) 

“+-=”表示设置权限的操作动作。“+”代表增加相应权限,“-”代表减少相应权限,“=” 代表仅设置对应的权限。 

“rwx”是权限的字符组合形式,也可以拆分使用,如“r”“rx”等。

chmod命令     设置文件和目录的权限

chmod   [ugoa]   [+-=]    rwx    文件或目录

chmod    nnn    文件或目录        ( nnn  三位八进制数)

-R   递归修改目录下所有子项的权限

chown命令     设置文件和目录的归属

chown      属主      文件或目录

chown     :属组      文件或目录

chown     属主:属组     文件或目录

-R   递归修改目录下所有子目录、文件的归属

chmod  go+x   njzb/          chmod   g+x,o+x   njzb/
chmod   a+rwx   njzb/        全加rwx权限
chmod  700  njzb/
chmod  -R  ...    njzb/          递归改

chown   yss    njzb/          改属主
            :yss                      改属组
          yss:yss                    改属主属组
         -R yss:yss                 递归目录下属主属组全改

案例:
[root@ky17 /]# cp /bin/mkdir mymkdir
[root@localhost ~]# ./mymkdir dir01
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  公共  视频  文档  音乐
dir01            mymkdir               模板  图片  下载  桌面
[root@localhost ~]# ls -ld dir01
drwxr-xr-x 2 root root 6 5月  15 00:11 dir01
[root@localhost ~]# chmod ugo-x mymkdir 
[root@localhost ~]# ls -l mymkdir 
-rw-r--r-- 1 root root 79768 5月  15 00:09 mymkdir
[root@localhost ~]# ./mymkdir dir02
-bash: ./mymkdir: 权限不够
[root@localhost ~]# chmod u+x,o-r mymkdir
[root@localhost ~]# ls -l mymkdir
-rwxr----- 1 root root 79768 5月  15 00:09 mymkdir
[humj@ky17 /]$ cat mymkdir 
[root@localhost ~]# chmod u+x,o-r mymkdir
[root@localhost ~]# ls -l mymkdir
-rwxr----- 1 root root 79768 5月  15 00:09 mymkdir

[root@localhost ~]# chmod 755 mymkdir
[root@localhost ~]# ls -l mymkdir
-rwxr-xr-x. 1 root root 79768 Apr 18 09:38 mymkdir

ls -ld /var/ftp/pub/
drwxr-xr-x 2 root root 6 5月  15 00:20 /var/ftp/pub/
[root@localhost ~]# chown -R ftp /var/ftp/pub/    #//修改前的属主为root
[root@localhost ~]# ls -ld /var/ftp/pub/    //修改后的属主变为ftp 
drw-r--r--. 2 ftp root 6 Nov 5 15:43 /var/ftp/pub/

[root@localhost ~]# ls -ld /var/ftp/pub/
drwxr-xr-x 2 ftp root 6 5月  15 00:20 /var/ftp/pub/

如果同时设置目录和文件的属主、属组,则需要用到分隔符“:”。例如,执行以下操作可  将 mymkdir 文件的属主更改为 daemon、属组更改为 wheel。
 
[root@localhost ~]# ls -ld mymkdir
-rwxr-xr-x. 1 root root 79768 Apr 18 09:38 mymkdir
 [root@localhost ~]# chown daemon:wheel mymkdir 
 [root@localhost ~]# ls -ld mymkdir
-rwxr-xr-x. 1 daemon wheel 79768 Apr 18 09:38 mymkdi


权限掩码umask

[root@kgc ~]# umask 000                      777-000=777  
[root@kgc ~]# mkdir /umask1                创建umask1权限改为777
[root@kgc ~]# ls -ld /umask1/
drwxrwxrwx 2 root root 4096 3 月 13 17:02 /umask1/
[root@kgc ~]# umask 022                      777-022=755
[root@kgc ~]# mkdir /umask2
[root@kgc ~]# ls -ld /umask2/
drwxr-xr-x 2 root root 4096 3 月 13 17:03 /umask2/ 


扩充(有空在弄)

last

                  多少行              终端
last [-num | -n num] [-f file] [-t YYYYMMDDHHMMSS] [-R] [-adioxFw] [username..] [tty..]

  last作用是显示近期用户或终端的登录情况。通过last命令查看该程序的log,管理员可以获知谁曾经或者企图连接系统。

  执行last命令时,它会读取/var/log目录下名称为wtmp的文件,并把该文件记录的登录系统或终端的用户名单全部显示出来。默认显示wtmp的记录,btmp能显示的更详细,可以显示远程登录,例如ssh登录。

-num |-n num指定输出记录的条数
-f file 指定记录文件作为查询的log文件
-t YYYYMMDDHHMMSS 显示指定时间之前的登录情况
username 账户名称<br>tty 终端机编号
(1).选项

-R 不显示登录系统或终端的主机名称或IP
-a 将登录系统或终端的主机名过IP地址显示在最后一行
-d 将IP地址转成主机名称
-I 显示特定IP登录情况。
-o 读取有linux-libc5应用编写的旧类型wtmp文件
-x 显示系统关闭、用户登录和退出的历史
-F 显示登录的完整时间
-w 在输出中显示完整的用户名或域名
(2).实例

第一列:用户名

第二列:终端位置(pts/0伪终端,意味着从SSH或telnet等工具远程连接的用户,图形界面终端归于此类。tty0直接连接到计算机或本地连接的用户。后面的数字代表连接编号)

第三列:登录IP或内核(如果是:0.0或者什么都没有,意味着用户通过本地终端连接。除了重启活动,内核版本会显示在状态中)

第四列:开始时间

第五列:结束时间(still login in尚未退出,down直到正常关机,crash直到强制关机)

第六列:持续时间

案列1
指定显示记录的数量(显示记录中最后登录的数量)

last -n 10
last -10           √

指定查询的文件,原本默认的是wtmp

last -10 -f /var/log/btmp

将IP 地址转换为主机地址
last -10 -d

 显示指定时间之前的记录
 
 last -10 -t 20180425000000  //之所以展示出来是为了提醒下-t后面的时间写法
 
 
 last -10 -R
 
 
 扩充的
 
 #######三种特殊权限
 
 #suid
 权限代表不管是谁执行此程序,将继承此程序所有者的权限。比如修改密码命令passwd,因此每个用户都可以用此命令修改自己的密码,由于其继承的是属主root用户的权限。
我当时就想,如果passwd命令真的继承属主root的权限的话,那我可不可以用vbirduser1 用户使用passwd命令修改 vbirduser2的密码?
当我去尝试的时候其实非也,他会提示你只有root用户在用passwd命令的时候可以指定用户名
 但是如果对其他一些比较危险的命令设置SUID权限的话会造成很大的安全问题。比如vim cat 等,这样普通用户使用者会root附体,权限极高。
 
[root@localhost aa]#which passwd 
/usr/bin/passwd
[root@localhost aa]#ll /usr/bin/passwd 
#此处s表示当使用这个命令程序时,把当前用户当成所属主
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd
[root@localhost aa]#which vim
/usr/bin/vim
[root@localhost aa]#chmod u+s /usr/bin/vim
#给vim加上suid权限,代表所有用户可以使用vim打开并编辑所有文件
[root@localhost aa]#ll /usr/bin/vim
-rwsr-xr-x. 1 root root 2289640 8月   2 2017 /usr/bin/vim
7777

#SGID(这个应该是文件共享里面最常用权限管理手段) 

作用于目录或可执行程序,作用于目录代表在此目录创建的文件或目录,默认的属组继承此目录的属组。
例如 我这个testgroup 没有设置SGID 。我用vbirduser1 在此目录下创建user1文件所属组为vbirduser1 是vbirduser1所在的组
[root@localhost aa]#chmod g+s /usr/bin/vim
[root@localhost aa]#ll /usr/bin/vim
-rwxr-sr-x. 1 root root 2289640 8月   2 2017 /usr/bin/vim

# Sticky 位
#具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
#在目录设置Sticky 位,只有文件的所有者或root可以删除该文件
#sticky 设置在文件上无意义
#Sticky权限设定:
chmod o+t DIR...
chmod o-t DIR..
[root@localhost aa]#chmod o+t /opt/aa
# 添加Sticky 位
[root@localhost opt]#chmod o-t /opt/aa 
#减少Sticky 位


总结:
1.Suid Set位权限

   ●对文件以文件的拥有者身份执行文件

   ●对目录无影响
权限设置:

  ●suid=u+s
2.Sgid Set位权限
  ●对文件以文件的组身份执行文件

  ●对目录在目录中最新创建的文件将其组所有者递归

权限设置:

  ●sgid=g+s

3.Sticky 粘滞位  
  ●对文件无影响

  ●对目录具有写权限的用户只可以删除其所有文件,不能删除其他用户所拥有的文件
权限设置:

一般创建用户一般都是644

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/31177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LInux驱动开发笔记(十)SPI子系统及其驱动

文章目录 前言一、SPI驱动框架二、总线驱动2.1 SPI总线的运行机制2.2 重要数据结构2.2.1 spi_controller2.2.2 spi_driver2.2.3 spi_device2.2.4 spi_transfer2.2.5 spi_message 三、设备驱动的编写3.1 设备树的修改3.2 相关API函数3.2.1 spi_setup( )3.2.2 spi_message_init( …

使用GPG来解密和加密文件详解

文章目录 使用私钥解密文件示例步骤 注意事项加密文件前提条件导入公钥加密文件输出加密文件示例步骤注意事项邮箱不是必须的情况1&#xff1a;有多个公钥情况2&#xff1a;只有一个公钥示例步骤示例1&#xff1a;指定公钥ID或邮箱地址示例2&#xff1a;密钥环中只有一个相关的…

深度学习论文: Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data

深度学习论文: Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data PDF: https://arxiv.org/abs/2401.10891.pdf 代码:https://github.com/LiheYoung/Depth-Anything PyTorch代码: http…

揭秘最酷的Matplotlib 风格库!

相信大家对Matplotlib多少有些了解&#xff0c;对于数据研究&#xff0c;最终的研究结果都尽可能利用可视化呈现&#xff0c;使其更加直观通俗易懂。而Matplotlib作为python家族中最为著名的绘图工具&#xff0c;其风格实在是有些无聊&#xff0c;有时会让人觉得科研工作者在可…

React中的JSX应该怎么用

什么是JSX JSX Javascript XML&#xff0c;JSX是一个 JavaScript 的语法扩展。 JSX可以很好地描述 UI 应该呈现出它应有交互的本质形式并且其完全可以和JavaScript融合在一起使用。而且具有 JavaScript 的全部功能。JSX 可以生成 React “元素”。 JSX代码示例&#xff1a; …

MicroBlaze IP核中Local Memory Bus (LMB)接口描述

LMB&#xff08;Local Memory Bus&#xff09;是一种同步总线&#xff0c;主要用于访问FPGA上的块RAM&#xff08;Block RAM&#xff0c;BRAM&#xff09;。LMB使用最少的控制信号和一个简单的协议&#xff0c;以保证块RAM能在一个时钟周期内被存取。所有的LMB信号都是高电平有…

【服务器03】之【Navicat完整版破解】

首先清掉电脑所有Navicat组件 虽然被卸载掉了但是没有彻底清理掉Navicat组件 在原装盘里找到Navicat清楚碎片 清空之后开始下载 navicat16 https://www.alipan.com/s/GTvP93mn3sU 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开「阿里云盘」APP &#xff0c;无需…

AI Workflow的敏捷开发:持续创新与优化的艺术

在人工智能的浪潮中&#xff0c;AI Workflow作为大模型落地的关键实践&#xff0c;正逐渐成为技术领域的新宠。然而&#xff0c;随着技术的发展&#xff0c;我们面临着一系列挑战&#xff0c;如何有效地应对这些挑战&#xff0c;实现AI Workflow的敏捷开发&#xff0c;成为了一…

fyne的VBox布局02

VBox布局02 最常用的布局是layout.BoxLayout&#xff0c;它有两种变体&#xff0c;水平和垂直。box布局将所有元素排列在单行或单列中&#xff0c;并带有可选的空格以帮助对齐。 一步一步实现一个如下界面布局&#xff0c;这个界面可以使用VBox布局来实现。 这次添加了2个复…

【C语言】自定义类型

目录 一、结构体&#xff1a; 1、结构体的声明&#xff1a; 2、结构体的自引用&#xff1a; 3、结构体变量的定义和初始化&#xff1a; 4、结构体内存对齐&#xff1a; 5、结构体传参&#xff1a; 6、位段&#xff1a; 二、枚举类型&#xff1a; 三、联合体&#xff1a…

【设计模式深度剖析】【10】【行为型】【状态模式】

&#x1f448;️上一篇:访问者模式 | 下一篇:解释器模式&#x1f449;️ 设计模式-专栏&#x1f448;️ 文章目录 状态模式定义英文定义直译如何理解呢&#xff1f; 状态模式的角色Context&#xff08;环境类&#xff09;State&#xff08;抽象状态类&#xff09;Concret…

Java | Leetcode Java题解之第169题多数元素

题目&#xff1a; 题解&#xff1a; class Solution {public int majorityElement(int[] nums) {int count 0;Integer candidate null;for (int num : nums) {if (count 0) {candidate num;}count (num candidate) ? 1 : -1;}return candidate;} }

Netdata介绍

前言 Netdata是一款用于Linux系统的实时性能监测工具&#xff0c;它提供了web界面的视角&#xff0c;使得用户可以通过可视化的方式清晰地了解系统和应用程序的实时状态。 Netdata具有以下几个显著特点&#xff1a; 实时性&#xff1a;Netdata能够实时监测系统和应用程序的性…

Android-Android Studio-FAQ

1 需求 2 接口 3 Android Studio xml布局代码补全功能失效问题 最终解决方案就是尝试修改compileSdk 为不同SDK版本来解决问题&#xff0c;将原本34修改为32测试会发现xml代码补全功能有效了&#xff01; 参考资料 Android Studio xml布局代码补全功能失效问题_android studi…

电压调整+无功优化!考虑泄流效应的风电场并网点电压系统侧增援调控方法程序代码!

前言 在发电侧能源结构转型的背景下&#xff0c;中国在可再生能源发电技术上的快速发展使得电网中风电并网比例不断增大。风能资源的有效利用缓解了电力紧张&#xff0c;但由于风速的不确定性&#xff0c;风电场引起的公共耦合点&#xff08;point of common coupling&#xf…

vue3项目使用Electron打包成exe的方法与打包报错解决

将vue3项目打包成exe文件方法 一、安装 1.安装electron npm install electron --save-devnpm install electron-builder --save-dev 2.在vue项目根目录新建文件index.js // index.js// Modules to control application life and create native browser window const { app…

Map-JAVA面试常问

1.HashMap底层实现 底层实现在jdk1.7和jdk1.8是不一样的 jdk1.7采用数组加链表的方式实现 jdk1.8采用数组加链表或者红黑树实现 HashMap中每个元素称之为一个哈希桶(bucket),哈希桶包含的内容有以下4项 hash值&#xff08;哈希函数计算出来的值&#xff09; Key value next(…

基于SSM+Jsp的水果销售管理网站

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

Linux 五种IO模型

注&#xff1a;还有一种信号驱动IO&#xff0c;使用较少暂不讨论&#xff1b; 一&#xff0c;区分阻塞、非阻塞和同步、异步 看了很多文章对这两组概念解释和对比&#xff0c;说的太复杂了&#xff0c;其实没必要&#xff0c;两句话就能说清楚。 首先&#xff0c;对于读数据rec…

探索监管沙箱在金融科技行业中的应用

一、引言 随着金融科技的快速发展&#xff0c;传统金融机构与科技企业之间的竞争也日趋激烈。为了平衡金融科技创新与风险防控&#xff0c;各国监管机构纷纷引入监管沙箱&#xff08;Regulatory Sandbox&#xff09;机制。监管沙箱作为一个受监督的安全测试区&#xff0c;允许金…