Linux里面x代表组密码种类吗?

linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发能力已经得到业界的认可,目前大多数企业级应用甚至是集群项目都部署运行在linux操作系统之上,很多软件公司考虑到开发成本都首选linux,在中国软件公司得到广泛的使用。

Linux主要的发行版本

1、 虚拟机软件下载:

Linux目录结构概述

Linux没有炫目的可视化操作界面,它的操作大部分都是直接执行命令,而可执行文件都是保存在相应的目录中的,所以我们对linux的操作大多数时候都是查找和执行这些可执行文件的。

linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。

在Linux世界里,一切皆文件。

Linux具体目录结构

1) root : 该目录为系统管理员目录,root是具有超级权限的用户。

2) bin ->usr/bin : 存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行。

3) usr是linux的系统资源目录,里边存放的都是一些系统可执行文件或者系统以来的一些文件库。

4) usr/local/bin:存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行。

5) lib->usr/lib: 这个目录存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。

6) boot : 这个目录存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

7) dev: dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,Linux中的设备也是以文件的形式存在。

8) etc: 这个目录存放所有的系统管理所需要的配置文件。

9) home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用户的根目录;用户登录以后,默认打开自己的根目录。

10) var : 这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件。

11) mnt : 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容

12) opt: 这是给linux额外安装软件所存放的目录。比如你安装一个Oracle数据库则就可以放到这个目录下,默认为空。

13) tmp: 这个目录是用来存放一些临时文件的。

Linux的远程操作工具

在软件公司中,无论是测试服务器还是正式服务器都是部署在公司Linux系统上的,而Linux系统通常是各开发小组共享的,因此程序员需要远程登录到centos进行项目管理或者开发。远程登录客户端有Xshell、Xftp等多种工具 , 我们学习使用Xshell和Xftp , 其它的远程工具大同小异。

Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。它通过互联网到远程系统的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。

Xshell 是目前最好的远程登录到Linux操作系统的软件,流畅的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。

3. 安装和使用:参考 “Xshell安装手册.docx”

3. 安装和使用:参考“Xftp安装手册.docx”

vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。

vim是vi的增强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用。

Vi和vim三种常见模式:

  • 一般模式: 以vi/vim 命令打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』快捷键来处理档案内容,也可以使用『复制、贴上』快捷键来处理你的文件数据。

  • 编辑模式:按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.

  • 命令行模式:在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的 !

Vi和vim常用快捷键

1. 一般模式拷贝当前行(yy) , 拷贝当前行向下的5行(5yy),并粘贴(p)。

2. 一般模式删除当前行(dd) , 删除当前行向下的5行(5dd)。

3. 一般模式下,在文件中查找某个单词,[命令模式下:(/关键字),回车查找, 输入(n) 就是查找下一个]。

4. 一般模式下,使用快捷键到达文档的最首行[gg]和最末行[G]。

5. 一般模式下,在一个文件中输入"xxxx" ,然后又撤销这个动作(u)。

6. 一般模式下,并将光标移动到10行shift+g

第二步:输入shift+g

7. 命令行模式下,设置文件的行号,取消文件的行号.[命令行下(: set nu) 和(:set nonu)]。

Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。root用户是系统默认创建的管理员账号。

useradd zhangsan:创建一个账号叫zhangsan,此时会创建账号、创建一个组zhangsan并且把zhangsan分到此组中、还会在/home下创建一个目录叫zhangsan作为新创建用户的根目录。

注意:从高权限用户切换到低权限用户时,不需要输密码;否则,需要输密码。

另:exit命令可以回到原来的用户。

Linux的组类似于角色,系统可以对有共性的多个用户进行统一的管理。每一个用户都至少属于一个组,创建用户时如果不指定组,会默认创建一个跟用户名相同的组,并且把新创建的用户分配到组中,root用户默认属于root组。

将用户添加到组/从组中移除:

reboot: 现在重新启动计算机

sync: 把内存的数据同步到磁盘.

在使用Linux过程中,如果遇到不熟悉的指令,一个是可以到网络上去查找,另一个是可以使用帮助指令。

man [命令或配置文件]

功能描述:获得帮助手册上的信息

功能描述:获得命令内置的帮助信息

block device 即块设备文件,如硬盘;支持以block为单位进行随机访问
symbolic link 即符号链接文件,又称软链接文件
pipe 即命名管道文件
socket 即套接字文件,用于实现两个进程进行通信

ugo强调对文档内容的访问控制,如文件的内容,文件夹的内容【文件名称,文件名称列表,文件本身】,而不控制文件属性的访问权限,如

  1. 文档权限信息【ugo,acl】

这些属性信息一般使用所有者和非所有者以及root来区分。所有者可以修改文件的这些属性信息,不过你不能将自己的文件归属到别人下面,或者非你的主组下面。root可以修改任何信息

    • 目录可以读取列出内部档案信息
    • 文件可以编辑、增加、删除文件的内容(但不含删除该文件)。
      • 删除已经存在的文件与目录(不论该文件的权限为何!)
      • 重命名已存在的文件或目录
      • 移动该目录内文件、目录的位置。
    • 该文件具有可以被系统执行的权限。
    • 目录是否可以cd进入。x权限是rw权限的保证,没有x则无法进行rw
    • 读取文件,执行文件,更改文件内容,任何对inode的访问都会使此处改变。
    • 文件夹 是在读取文件或者执行文件时更改的(我们只cd进入一个目录然后cd ..不会引起atime的改变,但ls一下就不同了)。
    • 文件内容的更改而更改的。
    • 文件夹内容的改变而改变。如怎加删除重命名文档
    • 文件信息发生变化。包括内容、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。
    • 文件夹信息发生变化。包括内容、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。
    • mtime的改变必然导致ctime的改变。
  • 文件默认权限为666,没有执行权限
  • 这种方式并不能永久改变umask值,只是改变了当前会话的umask值,打开一个新的terminal输入umask命令,可以看到umask值仍是默认的002。
    • SUID 权限仅对二进制可执行文件有效
    • 如果执行者对于该二进制可执行文件具有 x 的权限,执行时执行者将具有该文件的所有者的权限
    • 本权限仅在执行该二进制可执行文件的过程中有效
    • 由于只是获得文件所有者权限用户权限,用户组还是原来的组。新建的文件属于授权用户,而组依旧是执行者的组。
    • 二进制文件。当 s 标志出现在用户组的 x 权限时称为 SGID。SGID 的特点与 SUID 相同
    • SGID 也可以用在目录上。当一个目录设置了 SGID 权限后,它具有如下功能:
      • 用户若对此目录具有 r 和 x 权限,该用户能够进入该目录
        • 用户在此目录下的基本组将变成该目录的用户组
      • 若用户在此目录下拥有 w 权限,则用户所创建的新文件的用户组与该目录的用户组相同
    • SBIT 目前只对目录有效,用来阻止非文件的所有者删除文件。
    • SBIT 对目录的作用是:当用户在该目录下创建新文件或目录时,仅有自己和 root 才有权力删除。 其实就是防止自己的临时文件被别人删除
  • chattr指令只能在Ext2/Ext3/Ext4的 Linux 传统档案系统上面完整生效, 其他的档案系统可能就无法完整的支援这个指令了,
  • xfs 仅支持部份参数而已。
+ :增加某一个特殊参数,其他原本存在参数则不动。 - :移除某一个特殊参数,其他原本存在参数则不动。 = :设定一定,且仅有后面接的参数 A :当设定了 A 这个属性时,若你有存取此档案(或目录)时,他的存取时间 atime 将不会被修改, 可避免 I/O 较慢的机器过度的存取磁碟。(目前建议使用档案系统挂载参数处理这个项目) S :一般档案是非同步写入磁碟的(原理请参考前一章sync的说明),如果加上 S 这个属性时, 当你进行任何档案的修改,该更动会『同步』写入磁碟中。 a :当设定 a 之后,这个档案将只能增加资料,而不能删除也不能修改资料,只有root 才能设定这属性 c :这个属性设定之后,将会自动的将此档案『压缩』,在读取的时候将会自动解压缩, 但是在储存的时候,将会先进行压缩后再储存(看来对于大档案似乎蛮有用的!) d :当 dump 程序被执行的时候,设定 d 属性将可使该档案(或目录)不会被 dump 备份 i :这个 i 可就很厉害了!他可以让一个档案『不能被删除、改名、设定连结也无法写入或新增资料!』 对于系统安全性有相当大的助益!只有 root 能设定此属性 s :当档案设定了 s 属性时,如果这个档案被删除,他将会被完全的移除出这个硬碟空间, 所以如果误删了,完全无法救回来了喔! u :与 s 相反的,当使用 u 来设定档案时,如果该档案被删除了,则资料内容其实还存在磁碟中, 可以使用来救援该档案喔! 注意1:属性设定常见的是 a 与 i 的设定值,而且很多设定值必须要身为 root 才能设定 -a 默认会列出文件夹中的内容。-a表示列出隐藏内容包括. -d 只列出文件夹本身的信息,而不列出文件夹内容的信息

6、文件附加属性xattr

如果要文件系统支持该特性和,需要安装特定的库和工具命令。

Linux 文件系统扩展属性 — Extended Attributes/xattr。 EA是目前流行的POSIX系统中文件系统具有的一项特殊功能,可以给文件、文件夹添加额外的key/value的键对值,键和值都是字符串并且有一定长度的限制。

常用到的命令如下:setfattr、getfattr、attr。 setfattr可以设置EA,getfattr可以获取EA,attr是一个综合命令,可以设置、获取、删除、列举所有等操作。

ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权限管理机制。它被设计为UNIX文件权限管理的一个补充。ACL允许你给任何的用户或用户组设置任何文件/目录的访问权限

既然是作为UGO权限管理的补充,ACL自然要有UGO办不到或者很难办到的本事,例如:

  1. 可以针对用户来设置权限
  2. 可以针对用户组来设置权限
  3. 子文件/目录继承父目录的权限

ACL需要Linux内核和文件系统的配合才能工作,当前我们能见到的大多数Linux发行版本默认都是支持的。但最好还是能够先检查一下:

我们可以使用setfacl和getfacl命令来设置或观察文件/目录的acl权限。

2 、设置acl之后,ugo被替换,无效

文件设置了acl之后,先复制了原先的ugo权限,上面没有指定uid和gid的u,g,other就是复制了ugo的权限。

acl权限一般与最大有效权限mask结合使用,ACL权限与mask权限相与的值相与后的权限,为设定的真实权限。mask只对除所有者权限之外的权限生效

如果设定ACL权限为 r-- ,mask的权限为r-x,那么真实权限为r--。

如果设定ACL权限为 rwx ,mask权限为r-x,那么真实权限为r-x。

默认情况下,acl不能继承。通过给文件夹指定一个default的acl,就可以被其下的文档继承啦。

  • 指定任意default属性。acl会自动将文件夹自带的和你新加的内容转为default属性
  • 在文件夹下新建的文件会使用默认权限。但是不会带上default属性
  • 文件夹会带上default属性

权限基于用户。运行的进程需要从执行它的用户获取权限。权限信息是文件的属性,它指明了用户与文件之间的关系。但是真正操作文件的却是进程,也就是说用户所拥有的权限是通过进程来体现的

在 Linux 系统启动后,init 系统会 fork 出子进程执行 /sbin/getty 程序等待用户登录。当用户进行登录操作时,该子进程通过 exec 函数开始执行 /bin/login 程序(此时该进程已经变成了 login 进程)。由 login 进程验证我们的用户名和密码并查询 进程的子进程都会继承该有效身份。**我们可以通过下图来理解用户从 tty 登录系统的过程(此图来自互联网):

来决定进程对系统资源的访问权限。

  • 密码x。x表示设置了密码。真正的密码在/etc/shadow中
  1. /etc/shadow中的"*"不表示空的密码,和"!!"一样,它可能也表示锁住账户.空的密码是/etc/shadow中的密码域为空.至于"*"和"!!"为什么表示锁住账户,我想可能是因为unix采用的加密算法不会得到密文为"*"和"!!"的字符串,推而广之,在密码域放置任何不可能为密文的字符都可以锁住账户,"%"也许就行.

  2. 使用linux计时。即从的天数。

  3. 从最近一次修改开始不可被改动的天数。是个相对值

  4. 密码过期并需要修改的时间

    从最近一次修改开始后的天数。是个相对值

  5. 密码过期前几天开始警告。相对密码过期时间是个相对值

  6. 在此期间你依旧可以登陆bash。但是系统会要求你修改密码。超过此期限,账号被锁住。是个相对值

  7. 一个账号的生命。即从的天数到了这个点账号被锁住。和密码有没有过期没关系

  1. x,真是密码在shadow中。很少用到组密码

  2. 组里哪些人是将本组作为附加组的

  • /etc/skel/* 用户加目录下的默认文件都是从这里复制过去的

1、chmod[可用加减和等于号]

只有管理员和文件所有者可以修改权限

-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R【常用】 : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

只有管理员可以把文件所有者更改为其他人

* 用户可以是用户名或者用户ID
* 组可以是组名或者组ID;
user: 更改为指定所有者和其基本组
    -c 显示更改的部分的信息
    -f 忽略错误信息
    -h【常用】 修改软连接的归属而不是它指向的文档
    -R【常用】 处理指定目录以及其子目录下的所有文件
    -v 显示详细的处理信息
    --deference【常用】 作用于符号链接的指向,而不是链接文件本身
 --reference=<目录或文件>【常用】 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组
   --from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变
  --help 显示帮助信息
 

只有管理员可以把文件所有组更改为其他组

  chgrp命令是用来改变文件的组所有权。将改变每一个FILE的所属组为GROUP。使用--reference时,将改变每个FILE的所属组为RFILE的所属组。 -v,--verbose 为每个处理的文件输出诊断信息。 --dereference【常用】 影响每个符号链接的引用(这是默认值),而不是符号链接本身 -h,--no-derference【常用】 影响符号链接本身而不是任何引用的文件(仅在可以更改符号链接的所有权的系统上有用) -R,--recursive【常用】 以递归方式操作文件和目录

指令-修改那个时间-时间参考

-a【常用】 只修改atime为当前时间 默认情况下如果指定文件不存在,则会自动创建一个。加此选项表示不自动新建 替换默认的当前时间,使用时间特定字符串格式 使用指定文件的三个时间来替换
-a :全部的文件,连同隐藏档( 开头为. 的文件) 一起列出来(常用)
-A :全部的文件,连同隐藏档,但不包括. 与.. 这两个目录
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-f :直接列出结果,而不进行排序(ls 预设会以档名排序!)
-F :根据文件、目录等信息,给予附加数据结构,例如:*:代表可执行文件;/:代表目录;=:代表socket 文件;|:代表FIFO 文件;
-h :将文件容量以人类较易读的方式(例如GB, KB 等等)列出来;
-i【常用】 :列出inode 号码,inode 的意义下一章将会介绍;
-l :长数据串行出,包含文件的属性与权限等等数据;(常用)
-n :列出UID 与GID 而非使用者与群组的名称(UID与GID会在账号管理提到!)
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
-R :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来;
-S :以文件容量大小排序,而不是用档名排序;
-t :依时间排序,而不是用档名。
--color=never :不要依据文件特性给予颜色显示;
--color=auto :让系统自行依据设定来判断是否给予颜色
--full-time :以完整时间模式(包含年、月、日、时、分) 输出
 

mv不能覆盖非空的文件夹

mv移动文件,行为如下:

  • 目标是个目录则直接移动到目录里边
    • 末尾加上斜杠,会被认为是目录。如果本身不是目录或者不存在会报错
    • 末尾不加斜杠,移动文件会覆盖该文件
  • -T参数可以强制要求覆盖文件夹而不是移动进去
    • 只有文件夹可以覆盖文件夹
    • 被覆盖的文件夹必须为空
把源文件路径的末尾/移除 源文件在后,目标目录在前 把目标当作文件而不是目录。mv -T f1 ./f2 这样就能把文件重命名啦! 只有在目标文件比源文件旧或者目标文件不存在的时候移动源文件过去
  • cp默认复制真实文件,而不是链接过去。
  • cp不能直接复制一个非空的文件夹,需要加上参数-R,-r
  • cp的文件夹覆盖和mv不一样,cp的文件夹覆盖会合并文件夹
不要覆盖存在文件 (如果在-i的后面就覆盖-i) 覆盖文件时给出提示(如果在-n的后面就覆盖-n) 如果一个文件已存在且不能被打开(能打开就可以把内容直接复制进去啦),就删除这个文件然后再试一次。-n存在的时候忽略这个选项 复制的时候也把指定的属性也复制过去,否则是只把内容和文件名复制过去。 不指定后面的属性列表那就默认 mode,ownership,timestamps, 如是all则还附加了 context, links, xattr。 只复制软链接,不复制真实的文件。默认复制真实文件 --preserve=links 只作用于硬链接。一般来说如果n个指向同一个node的硬链接复制过去后,会产生n个文件备份。我们的初衷是只复制一份,然后把这些硬链接指向它。本参数帮你完成这个任务 只复制文件属性,不复制文件内容。 只有在目标文件比源文件旧或者目标文件不存在的时候复制源文件过去
 忽略不存在的文件和任何提示
 在提示模式为一次的情况下,如果用户选择了否,那么rm操作会停止。如果选择了一直,那么选择否的文件会跳过
  • tac倒着查看文件内容

  • /str 向下搜索字符串
    • 空格键:向下翻动一页;
    • /字符串:向下搜寻『字符串』的功能;
  • ?字符串:向上搜寻『字符串』的功能;

    • n:重复前一个搜寻(与/ 或? 有关!)
  • N:反向的重复前一个搜寻(与/ 或? 有关!)

    • g:前进到这个资料的第一行去;
  • G:前进到这个数据的最后一行去(注意大小写);

    • q:离开less 这个程序;
    • head -n n file # 查看前面n行。如果是一个负数表示不显示后n行
  • tail 查看后面几行

  • tail -f持续监测文件内容更新

在path中查找指令。-a 参数表示列出所有找到的,而不是第一个。

-uid n #n 为数字,这个数字是用户的账号ID,亦即UID 
 
-mtime n #n 为数字,意义为在n 天之前的『一天之内』被更动过内容的文件;
-mtime +n # 列出在n 天之前(不含n 天本身)被更动过内容的文件档名;
-mtime -n #列出在n 天之内(含n 天本身)被更动过内容的文件档名。
 

-exec 开头,;结尾可以写其他shell指令。加斜杠是为了转译;因为;再shell中有特殊含义。{}代表一个匹配的文件

  • . 可以匹配任意字符(包括换行符) ^ $ 不能识别换行符 ^ 可以匹配字符串开头(字符串的开始位置),也可以匹配行的开头(即换行符\n之后的位置) $ 可以匹配字符串结尾(字符串的结束位置), 也可以匹配行的结尾(即换行符\n之前的位置) 全局匹配关闭,只匹配首次成功匹配项,全局匹配开启,匹配所有成功匹配项
  • \bword\b 要求word的左侧和右侧不能出现单词字符 \bword 要求word的左侧不能出现单词字符 word\b 要求word的右侧不能出现单词字符 word不代表必须是一个单词,但是它必须由单词字符组成 在正则不同的语言实现中,单词字符组成可能不同,但是大多数都包含
  • 正则的分组编号方式是从左到右,按照遇到分组的左括号顺序来编排序号。

    设n是分组序号,那么\n表示在这个位置我要有一个和分组n一样的字符串

grep默认使用多行全局匹配

-c :只显示每个文件pattern能够匹配的次数 -i :忽略大小写的不同,所以大小写视为相同 -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行! --color=auto :可以将找到的关键词部分加上颜色的显示喔! -Bn : 表示将匹配的那一行的前n行也一起显示出来 -An : 表示将匹配的那一行的后n行也一起显示出来 -Cn :表示将匹配的那一行的前后n行也一起显示出来 -r :递归查找文件夹中的文件 -l :只显示匹配的文件路径 -o :只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行 -w:匹配整个单词,如果是字符串中包含这个单词,则不作匹配 -e:实现多个选项的匹配,逻辑or关系 -E :使用扩展的正则表达式 -P:表示使用兼容perl的正则引擎。 -q :参数,本意是安静模式,不打印任何标准输出。如果有匹配的内容则立即返回状态值0。通过echo $?查看上一条命令返回码

修改密码其他属性请使用其他参数

这个选项只能root用户使用 锁住账号,就是在密码前面加个!。但是这并不能完全锁住账号,用户依旧可以用 使用标准输入作为密码。一般用作shell脚本中批量建立用户 这个选项只能root用户使用 解锁,其实就是删除前面的!。 这个选项只能root用户使用 删除用户密码。删除后用户不受密码保护 这个选项只能root用户使用 强制过期密码。用户下次登陆需要重新设置 这个选项只能root用户使用 这个选项只能root用户使用 这个选项只能root用户使用 这个选项只能root用户使用 这个选项只能root用户使用 shadow内密码的大部分信息

userdel -f 除了-r的效果。连同名的组也一起删除

删除用户的同时删除很多东西 1、删除用户家目录和邮箱,即使文件夹拥有者不是用户本人 2、如果USERGROUPS_ENAB 为yes,那么任何和用户名同名的组会被删除。就算这个组是别人的基本组 3、就算用户登陆中,也会强制删除

我们只需要记住默认清空,需要特殊定制查询文档即可

  • option的优先级 > 配置文件[login.defs]>默认值[useradd]。选项之间也有优先级,优先级高的没有指定,低的指定了就会生效。

只要看配置,默认值就知道默认情况下的创建用户行为:

    • 会创建家目录,位置在/home。文件夹名称和用户名一致
    • 会创建与用户名同名的组并设置为基本组
    • 系统用户不会创建家目录,除非指定-m

一般默认的够用了,如需要定制,参考如下文档

useradd - 创建一个新用户或更新默认新用户信息 没有加-D选项的时候,就是普通的添加用户指令。 是否创建用户家目录。如果没有指定,就会参考defs配置文件中的CREATE_HOME选项,如果是yes,就创建一个和用户名同名的 指定一个别的地方的家目录。如果没有指定,参考-b 如果没有指定-d,那么BASE_DIR将作为家目录的基础路径,然后加上用户名作为路径 否则使用默认的/home 任何字符串。通常是关于登录的简短描述。 第八个字段,账号失效日期。 1.没有指定,则使用默认值EXPIRE。 2.如果默认值没有指定,则使用空的字符串,一般代表不过期 第七个字段,密码失效宽限日期。 1.没有指定,则使用默认值INACTIVE。 2.如果默认值没有指定,则使用-1,一般代表不起作用 用户基本组的组名或号码。组名必须已经存在。组号码必须指代已经存在的组。 1.如果没有指定,但是指定了-U那么就生成一个和用户名一样的用户组 3.如果显式指定了-N,则不建立【注意option的优先级比配置高,所以-N优先于USERGROUPS_ENAB】 5.这个时候就使用了到默认值GROUP啦, 6.如果GROUP没有指定,则默认使用id为100的组 如果-g没有指定,不创建和用户名同名用户组 创建一个和用户同名的组,并将用户添加到组中。 指定用户家目录内文件复制模板。 如果可以,也复制 ACL 和扩展属性。 不要将用户添加到最近登录和登录失败数据库。 指定一个唯一的uid,加上-o参数允许使用已存在的uid 允许使用重复的 UID 创建用户账户。 指定一个合法的加密过的密码。不建议使用 系统不会为系统账户创建家目录,就算CREATE_HOME 配置设置为true,除非你显式指定-m 指定用户shell。如果没有指定,则使用默认值SHELL。如果默认值没有。则为空 用户登陆的 SELinux 用户。默认为留空,这会造成系统选择默认的 SELinux 用户。

区别useradd。usermod没有默认值和配置哦。需要用户指定

 配合-G使用,添加附加组
 设置用户家目录。目录不存在则创建。
 第七个字段,密码失效宽限日期
 默认情况下先把用户从之前的附加组中移除,然后把用户添加到后面列出的附加组中。其实就是覆盖替换。加上-a一起用则表示附加
 修改用户名。家目录和邮箱目名字需要手动修改哦!!!
 设置签名后的密码。不推荐使用。
 修改uid。加上-o,可以使用重复的uid.用户邮箱和家目录中的文件归属会自动转成新的uid

这个命令用于详细的修改shadow中的参数。本身也是一个suid命令。如果没有明确说只能root使用,那么这个选项所有用户都能使用。只能用户修改查看自己的的密码信息

设置账号过期时间【第八个字段】 设置成-1表示不会过期 密码宽限天数。-1表示此字段无效 密码不可修改天数。设置成0表示任意时刻都可以修改密码 密码失效时间。-1表示不失效。

查看linux发行版本的信息

显式uid,gid,附加组信息

指定唯一gid,和-o配合允许gid重复
指定唯一gid,和-o配合允许gid重复 任何把被修改的组作为基本组的用户,组id也会随之改变

w 执行这项指令可得知目前登入系统的用户有哪些人,以及他们正在执行的程序。

单独执行 w 指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。

who 显示当前登录的人是谁

lastlog 检查最近登陆的有哪些用户

-m #后面直接接上acl表达式. 多个表达式用逗号隔开,表示添加acl权限 -x #后面直接接上acl表达式. 多个表达式用逗号隔开,表示删除acl权限【除了默认的ugo之外可以删除任何权限。包括d和m。删除的acl表达式不能有perm】 -M-X #从文件或者标准输入中读取acl表达式。 -n, --no-mask #每次在设置权限的时候如果出现了mask中没有的权限,那么mask会把这个权限更新到自己里面去,为了避免这个mask重新计算,需要指定-n -d, --default #所有设置操作都为默认操作。相当于每次操作前都加了d前缀 --test #测试模式。不会真的设置acl,而是打印出设置后的结果

一、查看与用户相关文件命令:

#直接打印文件内容并且显示行号


用户名:用户名不要太长。Niejunzhong

X: 密码位 保留,以前的linux存放密码

Etc/passwd每个用户都有读权限。早些密码放置在密码位。


登录名:加密密码:最后一次修改的时间:最小时间间隔:最大时间间隔:警告时间:账号闲置时间:失效时间:标志。

超级用户缺省没有写权限,照样可以进行修改或删除。

为什么普通用户可以更改密码?



SetUID的定义:当一个可执行程序具有SetUID权限,用户执行这个程序时,将以这个程序的所有者的身份执行。

Passwd的所有者是root所有普通用户在更改密码时是变成root所有者来执行这个命令的。

修改用户配置文件添加用户(原理)


2、Mkdir 创建宿主目录 给予权限 用户 目录



此时可以登录命令提示符不同



5、Cp skel里的文件到新用户的宿主目录



Login.defs 配置邮件 最大时间间隔最小时间间隔(root不限定)自动创建目录 Umask

Etc/default/useradd 宿主目录缺省目录账号是否被禁用账号失效时间

登录前:etc/issue 避免暴露系统版本信息


Uid为0的用户叫做超级用户,命令提示符前


1、伪用户与系统和程序服务相关

2、伪用户通常不需要或无法登陆系统

上一页12 下一页 阅读全文

我要回帖

更多关于 一个具有唯一进程id号的shell 的文章

 

随机推荐