Linux学习笔记四

第五单元

##########################用户操作命令#################

(一)id的使用

id用户名##查看用户信息

id -u###用户uid(userid)

-g###用户gid(初始组的id,只有一个)

-a###用户所有信息

-G###用户所有组的id(包括大学,linux组等)

-un###用户名字

-gn###用户初始组名称

-Gn###用户所在所有组名称

执行vim /etc/login.dafs,可知用户的uid默认的是1000!

运行情况是:

[[email protected] Desktop]$ echo $PATH

/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

[[email protected] Desktop]$ which ls

alias ls=‘ls --color=auto‘

/usr/bin/ls

(二)切换用户的环境

echo $PATH###查看当前用户的用户环境,即显示当前PATH环境变量,该变量的值由一系列冒号分隔的目录名组成。

echo $USER###显示当前用户的信息

su - username###切换当前用户所使用的环境

##kiosk原本的环境

[kiosk echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/kiosk/.local/bin:/home/kiosk/bin

##root原本的环境

[root echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

##root用su - kiosk切换到kiosk,同时切换到了kiosk自己的环境变量

[root su - kiosk

[kiosk echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/kiosk/.local/bin:/home/kiosk/bin

##root用su  kiosk切换到kiosk,但还是root的path,没有切到kiosk的path

[root su  kiosk

[kiosk echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

在切换用户时,su  student和su - student的不同之处:

1.su - student切换用户、及用户的环境,加了”-”环境变量也改变了;

2. 不加”-”即su student就只是切换用户。

(三)用户及组的操作

1. 用户

① 用户类型

a. 管理员Root:具有所有权限的用户,uid的值为0

b. 普通用户:正常创建的用户,uid为500~60000

c. 系统用户:保障系统运行的用户,一般不提供密码登陆系统,uid为1~499

② 用户相关文件

a. /etc/passwd##用户信息文件

存放用户的基本属性,从中可查看linux的所有用户。格式为:

『用户名:密码:用户id:用户主组id:用户说明(如姓名、年龄、电话等):用户根目录:用户编程环境(使用的shell)』

每个用户组有一个主组(私有组),一个或多个附加组。

b. /etc/shadow##用户认证信息

存放用户密码的一些策略,格式为:

『用户名:密码:最近更改密码的日期:密码不可更改的天数:密码更改前的警告期限:密码过期的宽限时间:帐号失效日期:保留』

c. /home/username##用户家目录

d. /etc/skel/.*##用户的基本信息配置

③ 用户命令

a. 新增用户:useradd -d 根目录 -g主组 -G 附加组列表(逗号隔开) 用户名

b. 重置密码:passwd 用户名

c. 修改用户:usermod -d 根目录 -g主组 -G 附加组列表(逗号隔开) 用户名————该命令的-G会把用户从原来的附加组移出来,可以使用-a参数指明是新增模式

d. 删除用户:userdel -r 连根目录一起删除 用户名

e. 查看所有用户:cat /etc/passwd

f. 查看单个用户详细:id 用户名

g. 查看当前所有的登陆用户:whho

2. 用户组

用户组是用户的容器,用户能从用户组继承权限。

① 用户组类型

a. 普通用户组:可以加入多个用户

b. 系统用户组:一般加入一些系统用户

c. 私有用户组:创建用户的时候,如果没有指明用户组,都会为该用户创建一个同名的用户组。私有用户组其实也是普通用户组的一种。

② 用户组相关文件

a. /etc/group##用户组信息

存放组的基本信息。格式为;

【组名:组密码:组id:用户列表】

b. /etc/gshadow

与用户组的shadow相似

③ 用户组命令

a. 新增组:groupadd -g uid号 组名————如果不指定uid号则自动生成

Groupadd -g 888 test(指定uid为888)

Groupadd hehe(未指定uid)

b. 修改组:gruopmod -n 新组名 组名————可以用来改组名

Groupmod -n jack jaak

c. 删除组:groupdel 组名————如果组内还有用户则无法删除

d. 查看所有组+查看某个组内的用户:cat /etc/gruop

e. 查看用户的组信息:id 用户名

输出:

uid=0(root) gid=0(root) groups=0(root)

uid是主组,gruops是附加组

f. 将用户添加进组里:gpasswd -a用户名 组名

g. 将用户从组里移除:gpasswd -d 用户名 组名

-----------------------------------------------------------------

(四)用户的详细操作

useradd###新建用户

-u###指定用户的uid

-g###指定用户初始组,这个组一定要存在

-G###指定附加组,组同样要存在

-c###用户说明

-d###指定用户加目录

-s###指定用户使用的shell,shell种类参看/etc/shells

userdel -r####删除用户

groupadd-g###新建组,-g表示指定组的id

groupdel###删除组

passwd####更改用户密码

『例』useradd  -u 1016(已存在的组号) -g 1016(已存在的组号) test(用户名)

##################首先监听passwd###########

Watch -n1 tail -n 3 /etc/passwd

1.

Useradd  添加test用户

Useradd test

当有一个进程正在使用而无法删除test时:

Kill + 该进程号

然后再:

Userdel -r test

这样就能顺利删除了

2.

可以同时指定用户的uid和gid

Useradd -u 888 -g 888 test

3.

添加用户说明(要先删除test才能建立)

Useradd -c “test user” test

4.

指定用户家目录

Useradd -d /mnt/test test

5.

指定用户使用的shell类型

Useradd test -s /bin/tcsh

6.

查看shell的种类

Cat /etc/shells

可以得到以下信息:

[[email protected] Desktop]$ cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

查看/监听用户建立或管理过程使用的命令

Watch -n1 ‘tail -n 7(行数) /etc/passwd  /etc/group  /etc/shadow; ls -l /home’

监听结果

usermod

-u--uid##改变用户uid   ( user modify )

-g--gid##改变用户初始组

-G--groups##改变用户附加组

-aG##增加用户附加组

-d--home HOME_DIR ##改变用户家目录信息

-md##改变用户家目录信息和家目录名称

-s--shell##改变用户的shell

-l --login##修改用户名

-L--lock##冻结用户

-U--unlock##解锁用户

1.

改变用户的uid

执行usermod -u 888 test

将/etc/passwd下的Test:x:1001:1007::/home/test:/bin/bash

变为Test:x:888:1007::/home/test:/bin/bash

2.

改变用户初始组

执行Usermod -g 22 test

将/etc/passwd下的Test:x:888:1007::/home/test:/bin/bash

变为Test:x:888:22::/home/test:/bin/bash

3.

改变用户附加组

执行usermod -G 1006 test

将/etc/group下的leo:x:1006:

变为leo:x:1006:test

若执行usermod -G 72 test就没有变化,这说明要对应相应的组id

4.

改变用户附加组

执行usermod -G 21(组号) test(用户名),这句话意思是将编号为21的组附加给test用户

将/etc/group下的slocate:x:21:

改为slocate:x:21:test

slocate:x:21:test这句话的意思是编号为21的组附加用户是test

5.

清空用户附加组

执行usermod -G “” test,意思是将test的附加组指定为空

将/etc/group下的slocate:x:21:test

改为slocate:x:21:

6.

更改用户信息

执行usremod -c “test user” test

将Test:x:888:22::/home/test:/bin/bash

改为Test:x:888:22:test user:/home/test:/bin/bash

7.

改变用户家目录信息

执行usermod -d /home/wetos test

8.

改变用户家目录信息和家目录名称

执行usermod -md /home/westos

将Test:x:888:1001::/home/test:/bin/bash

改为Test:x:888:1001::/home/westos:/bin/bash

9.

改变用户的shell

执行usermod -s /bin/csh(shell类型之一) test

将Test:x:888:1001::/home/test:/bin/bash

改为Test:x:888:1001::/home/westos:/bin/csh

10.

修改用户名

执行usermod -l lee(新名称 ) test(旧名称)

将Test:x:888:1001::/home/test:/bin/csh

改为lee:x:888:1001::/home/westos:/bin/csh

###################用户权限下放(sudo)###################

1. 权限下放动作的配置文件:/etc/sudoers

2. 这个文件用visudo命令编辑

3. 给权限的文件内容写法:

Test desktop12=(root) NOPASSWD:/usr/sbin/useradd, /usr/sbin/userdel

① Test————授权目标用户

② Desktop=(root)————主机名称=(授权用户得到的新用户身份)

③ 授权用户可以执行的命令(逗号+空格分开)

4. 查看主机名:hosthome

5. 注意:

先输入visudo命令进入

然后添加权限下放语句,在该语句中,执行命令间用逗号+空格隔开

最后输入sudo useradd username才能使用自己的权限。

6. 示例:

① test用户能在localhost(desktop12)主机执行useradd(要test密码验证)

testdesktop12=(root)/usr/sbin/useradd

② test用户能在localhost主机执行useradd(不要要test密码)

testlocalhost=(root)NOPASSWD: /usr/sbin/useradd

##########################密码期限更改###################

1. 用法:chage [选项] 登录

2. 选项

-d ,--lastday##将最近一次密码设置时间设为lastday,如果

设定为0表示强制使用户下次登录系统前必须修改密码

-m,--mindays ##设置两次改变密码之间相距的最小天数

-M,--maxday##设置两次改变密码之间相距的最大天数

-W,warndays##设置密码过期的警告天数

-I,inactive##过期inactive天数后,设定密码为是失效状态

-E,--expiredate##账户过期时间格式yyyy-mm-dd

3. 用watch -n1 tail -n 3 /etc/shadow监听,有最终结果:

test:naijfvahvad8*#&!hsidfh9(密码):22:1:30:33:2:17111:

【用户名:密码:最近更改密码的日期:密码不可更改的天数:密码更改期限:密码过期的宽限时间:帐号失效日期:保留】

4. 从test起修改至17111

passwd test##修改test密码

chage -d 22 test##将最近一次修改密码的日期指定为22

chage -m 1 test##设置密码暂时不可更改的天数为1

chage -M 30 test##设置到密码需更改的最大时间

chage -W 33 test##设置警告天数

chage -I 2 test##密码需修改后的宽限时间

chage -E  2016-11-22 test##设置帐号失效日期

时间: 2024-10-08 09:57:13

Linux学习笔记四的相关文章

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

linux学习笔记四(shell编程)

前言:最近在学习shell编程,shell编程是一个很强大的编程语言. 目的:方便今后复习. 内容:1.简单的回顾一下编程语言                 1)编程语言:机器语言,汇编语言,高级语言.                 2)编程语言有静态和动态的区分.                             区别:静态语言是一种编译性的语言,要提前知道变量的格式,进过完整的编译之后才能运行,典型的静态语言包括:C.C++.JAVA.C#.                    

Linux学习笔记(四)账号管理之管理用户账号

1.管理用户账号:每一个登录Linux操作系统的用户在系统中都应该有其对应的注册账号,这些账号记录了用户的信息,如用户名.登录口令.用户目录所在位置.所用的shell.建立时间.权限等信息.其中用户账号管理包括:添加用户.设置口令.删除用户,修改用户属性和权限等.因此,账号管理是系统管理员重要的日常工作之一. (1).添加用户:其中超级用户的账号在Linux系统安装时已经创建了,即root用户,但超级用户的权限太大不适合给普通用户使用,否则会对Linux系统安全造成威胁:因此,所有要使用Linu

Linux学习笔记(四)之用户登录

1.Linux是一个网络操作系统,作为多用户,多任务的操作系统,其系统资源是所有用户共享的.任何要使用系统资源者必须先在系统内登记,注册,即开设用户账号,该账号又包含用户名,口令,所用的shell,使用权限等.为了计算机系统的安全,LInux会对每一个要求进入系统的用户进行用户名和口令的验证,如果验证成功则用户登录成功,否则系统拒绝登录. 2.其中用户登录又分为两种,一种是用户的终端登录,另外一种是远程登录,如果用户是在本地终端登录Linux系统,便为用户的终端登录,如果用户是通过网络登录Lin

【linux学习笔记四】文件搜索命令

一 文件搜索 locate //在后台数据库中按文件名搜索 搜索速度更快 locate 文件名 //locate命令所搜索的后台数据库 /var/lib/mlocate //更新数据库 updatedb 二 命令搜索命令 whereis 与 which //搜索命令所在路径及帮助文档所在位置 whereis ls whereis -b 只查看可行性文件 whereis -m 只查找帮助文件 //除了所在位置 还可以查看文件别名 which 三 文件搜索 find //find [搜索范围] [搜

Linux学习笔记(四)-Linux常用命令

常用命令格式 #command(指令) [-options] parameter1(参数1) parameter2(参数2)... 大小写区分,tab自动补全 Shell特殊字符 通配符 管道Pipe:把前面进程的输出作为后面进程的输入,把前面文件的输出作为后面进程的输入 输入/输出重定向 命令帮助 Man工具就是系统帮助手册:man+命令 Info工具是一个基于菜单的超文本系统 翻页 ctrl+f:下一页 ctrl+b:上一页 more 历史记录查看 history n(指定查看最近多少条)

Linux 学习笔记 四

HP HYPERTEXT PREPROCESSER 超文本预处理器 词法分析 语法分析 生成执行路径 opcode 操作码 PHP解释器 php 源代码 编译成 二进制  执行 二进制程序 zend:opcode PHP 的中间语言 apache+php cgi module fastcgi nginx+fpm 数据库管理软件 1.数据库的创建.删除 2.创建表.删除.修改表 3.索引的创建和链接 4.用户和权限 5.数据的增删改查询操作 DML 数据操作语言 insert replace up

linux 学习笔记四

文件权限管理篇章 chown  -R mysql.  /usr/local 把 /usr/local/以及以下的所有文件和子目录属主改为  mysql ls -al * 用这条命令查询 chgrp chgrp  -R mysql /usr/local 把  /usr/local/以及以下的所有文件和子目录属主改为 mysql 删除用户和组的方法 法 1 删除用户  /etc/passwd 删除组  /etc/group 其他相关信息 /etc/passwd 法 2  #userdel -r my

linux学习笔记四:文件的打包与解压