0221自学Linux_bash全局配置+个人配置+命令(useradd,finger,groupadd相关,chage,chown,chmod,umask)

13

一、useradd
要牢牢掌握这个

useradd [options] USERNAME(登录名)

-u:指定UID

[email protected] ~]# useradd -u 1000 user1

[[email protected] ~]# tail -1 /etc/passwd

user1:x:1000:1000::/home/user1:/bin/bash

要明白,如果UID和GID不一样,会在权限和脚本上有一定的影响

-r:添加一个系统用户,从1-499之间找一个id号,并且默认“系统用户”是不能登录的,因为不会生产家目录

而groupadd也有一个-r也是添加一个系统组的意思,而且也是没有家目录的,手动复制/etc/skel的文件变成家目录也是可以登录的

-g:GID(基本组)指定创建用户的基本组是什么(这样指定的话,组名必须要存在,所以要事先先创建组)

/etc/group最后那一个字段是以该组为附加组的用户,多个的话用逗号隔开

useradd -g togogo togogo02

-G:GID(附加组)

如果我们指定了UID,下次创建默认的就是最大的UID加1,所以中间可能会空很多UID没有设置

-c "CONMENT"指定注释信息(多个注释信息用,隔开,并且可以用chfn来设置)

-d /path/to/somedirectory 指定某个目录作为家目录

[[email protected] ~]# useradd -c "mynameistom" -d /home/tomny togogo03

[[email protected] ~]# tail -1 /etc/passwd

togogo03:x:1001:1001:mynameistom:/home/tomny:/bin/bash

-s SHELL的意思,指定的shell要是/etc/shells下面的一个shell,所以这个-s是指定shell路径的

cat /etc/shells

[[email protected] ~]# useradd -s /sbin/nologin user5

[[email protected] ~]# su - user5

This account is currently not available.

到现在学习的环境变量有以下几个

PATHSHELLHISTSIZE

[[email protected] ~]# echo $SHELL查看当前默认的SHELL是什么

/bin/bash  -m强制为用户创建家目录()

-k 把/etc/skel(skel这个单词指的是人的骨架框架)(是一些bash的配置文件,一些环境变量)

[[email protected] ~]# cd /etc/skel/

[[email protected] skel]# ls -a

.  ..  .bash_logout  .bash_profile  .bashrc

创建用户的时候,默认是把/etc/skel中会把这些默认赋值到家目录里面去的

如果没有这些文件在家目录下,这个用户是不健全的,

密码的最短时间,最长时间,还有那些默认是500,1000的,还有默认的权限077

都是在etc/login.defs可以设置

-M不创建家目录

如果用户没有家目录的话,是不能够进入这个用户的。因为他没有默认的一些skel给与的配置,找不到一些默认配置,所以不能登录

[[email protected] ~]# useradd -M user7

[[email protected] ~]# su - user7

su: warning: cannot change directory to /home/user7: No such file or directory,  这里是告诉你妮没有家目录没哟一定的环境变量

-bash-4.1$ pwd

/root

二、userdel

userdel:【option】 USERNAME

删除一个用户默认不会删除家目录的

-r选项remove,就是删除用户的同时,也把家目录给删除了

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

-n显示组的组名,名称,而非是id号

还有-u -g -G几个,分别显示不同的UID,GID之类的

[[email protected] ~]# id -G user1

1000 0

[[email protected] ~]# id -G -n user1

user1 root

其他的就不是很常用了

三、finger

finger:食指,是用来检索用户信息的账号信息

finger togogo01 就可以看到用户账号的相关属性信息了

修改finger信息用chfn(change finger)

[[email protected] Packages]# finger togogo01

Login: togogo01                         Name:

Directory: /home/togogo01               Shell: /bin/bash

Last login Sat Jul 25 05:22 (EDT) on pts/3

No mail.

No Plan.

四、usermod

如何修改用户账号属性信息:

usermod,跟useradd的选项差不多的,意思也是差不多的

-u UID

-g GID

-G GID附加组,如果之前有附加组,如果用这个命令,就会之前的附加组会没了

所以经常用-a和-G是一起使用的,追加附加组,不然没有-a会替换原来的附加组

-c 修改注释信息(注释多项的时候用逗号隔开,具体为chfn修改他的注释信息)

[[email protected] ~]# tail -1 /etc/passwd

linan3:x:502:500::/var/linan3/:/bin/bash

[[email protected] ~]# usermod -c "whoyouare" linan3

[[email protected] ~]# tail -1 /etc/passwd

linan3:x:502:500:whoyouare:/var/linan3/:/bin/bash

-d 为用户指定新的家目录,但是很危险,原来的家目录文件就没有了,如果要用户还能访问此前在家目录创建的文件,需要将原来的东西移动到新的位置

可以用-m目录,所以-d经常和-m一起使用:即指定新的家目录位置,又移动此前家目录的文件到新的家目录

-s 修改shell

-l 直接修改用户名的用户(修改用户名:登录名)

-L可以直接锁定用户账号,类似于禁用

立刻可以锁定账户,所以对于的就是-U

-U就是用于解锁的,解锁账号

其实这个命令的用处是非常大的

-e 定义用户的过期时间,格式年月日

-f 非活动时间   用得少,到时候man一下就可以了

[[email protected] skel]# cp .bash_logout .bash_profile .bashrc /var/linan3/

[[email protected] skel]# cd /var/linan3/

如果指定了其他的家目录,别忘了把一些相关的文件从/etc/skel中拷贝到指定的家目录去,不然是不能登录用户的

五、chsh,chfn

chsh:change shell的简写---就是用来修改shell 的

[[email protected] Packages]# chsh togogo02

Changing shell for togogo02.

New shell [/bin/bash]: /bin/tcsh

[[email protected] Packages]# finger togogo02

Login: togogo02                         Name:

Directory: /home/togogo02               Shell: /bin/tcsh

chfn:其实这个就是用来修改注释信息的,用法也是chfn USERNAME

[[email protected] ~]$ chfn

Changing finger information for user1.

Password:

Name []: Xiaoming

Office []: Yanfabu

Office Phone []: 13690965166

Home Phone []: 6299498

Finger information changed.

[[email protected] ~]$ finger user1

Login: user1                            Name: Xiaoming

Directory: /home/mainuser/              Shell: /bin/bash

Office: Yanfabu, +1-369-096-5166        Home Phone: 629-9498

[[email protected] ~]$

所以以后自己管理Linux的时候,给不同的人创建账号的时候,用到这个也是非常好的

finger 查看修改的相关信息

密码管理:

六、passwd

passwd 【USERNAME】

这个用起来很简单,但是也有几个选项使用

管道方式输入密码:杠杠stdin    --stdin 通过标准字符串来接收密码

将来可在脚本中,方便的创建用户账号,并同时给他指定密码(这个体现了Linux重要的思想之一:尽量避免捕获用户接口)

[[email protected] Packages]# echo "123456" | passwd --stdin togogo01

Changing password for user togogo01.

passwd: all authentication tokens updated successfully.

-l锁定用户

-u解锁用户

-d删除用户密码(默认清空了密码是不给登录的,当然root su 过去是可以的)

-n 密码最短使用期限

-x 密码最长使用期限

其他不常用的参看man 一下去看一下

六:pwck

pwck:检查用户账号的完整性

接下来跟组相关的命令

组管理

七、groupadd

groupadd

-g指定GID

-r添加系统组,我们将来在安装服务器软件的时候可能会用到这个去生成系统组和系统用户

而且系统用户和系统组是不会有家目录的,当然是可以手动增加家目录就可以登录的了

八、groupmod

groupmod

-gGID

-nGRPNAME修改组名称  而usermod是用-l来修改组名的

groupdel删除组

gpasswd:为组设定密码

应用场景:是在你想修改文件的属组的时候,你要登录属组的这个组的密码。

通常和newgrp连用,它可以修改用户的属组

所以newgrp是可以临时切换用户的基本组,改变一种登录属性

[[email protected] ~]# groupadd hoop

[[email protected] ~]# gpasswd hoop

Changing the password for group hoop

New Password:

Re-enter new password:

[[email protected] ~]# su - togogo01

[[email protected] tmp]$ touch a.hoop

[[email protected] tmp]$ ll

-rw-r--r--. 1 togogo01 togogo    0 Jul 26 02:00 a.hoop

[[email protected] tmp]$ newgrp hoop

Password:

上面这一步可以看到,newgrp是修改用户的属组为hoop,然后就需要输入这个组的密码了,输入正确,后面创建的文件就是这个属组了

[[email protected] tmp]$ touch 2.hoop

[[email protected] tmp]$ ll

-rw-r--r--. 1 togogo01 hoop      0 Jul 26 02:01 2.hoop

-rw-r--r--. 1 togogo01 togogo    0 Jul 26 02:00 a.hoop

是可以退出的,不想用newgrp修改的属组的是用户就用exit退出即可

练习题目

对密码的期限在设置密码的时候使用

而对于用户的期限可以用chage或者是usermod来实现

九、chage

(这些信息可以直接修改shadow文件,前提一定要知道shadow里面的各个字段的意思是什么)

chage 改变用户密码过期信息的 ----------man手册要常用

-d:最近一次的修改时间

-E:过期时间

-I:非活动时间

-m:最短使用期限

-M:最长使用时间

-W:警告时间

14

权限管理:

r:对文件来说:可以使用less ,cat ,目录来说,可以对此目录用ls命令,但是不能ls -l,也不能cd进去

w:文件来说:可以编辑删除这个文件,目录亦如此

x:文件来说:可以交给内核执行。目录来说:可以用ls -l 和cd 进去

对于这些权限,我们对三类用户都分别定义了:

u属主:

g属组:

o其他用户

一、chown

chown:改变文件属主(这个命令是只有管理员可以使用此命令)

# chown USERNAME file,...

-R:修改目录及其内部文件的属主,对目录用此命令,里面的文件和目录所有也都变成修改的属主

--reference它的意思是引用,参考,参考某一个文件或者目录的属组和属主

--reference=/path/to/somefile file...

[[email protected] tmp]# mkdir ccc

[[email protected] tmp]# chown --reference=/tmp/aaa ccc/

[[email protected] tmp]# ls -ld ccc

drwxr-xr-x. 2 togogo01 root 6 Jul 26 02:24 ccc

二、chgrp

chgrp:改变文件属组(这个命令是只有管理员可以使用此命令)

-R:修改目录及其内部文件的属主,对目录用此命令,里面的文件和目录所有也都变成修改的属组

--reference它的意思是引用,参考,参考某一个文件或者目录的属组和属主,这个是一块改的

--reference=/path/to/somefile file,...

如果我们想同时改变属组和属主怎么办,就可以用chown一起改,用:或者用.分开

[[email protected] ~]# chown root:redhat /tmp/

[[email protected] ~]# ll -d /tmp/

drwxrwxrwt. 3 root redhat 4096 Aug 23 20:14 /tmp/

三、chmod

改变文件的权限

chmod:

这个也是支持--reference=/path/to/somefile file,...

可以用=号,可以用+—符号,可以用数字,多种模式

不用a+x ,只有+x也是代表了所有的用户组加上执行权限

[[email protected] skel]# useradd -M nani

[[email protected] skel]# su - nani

su: warning: cannot change directory to /home/nani: No such file or directory

mkdir: cannot create directory ‘/home/nani‘: Permission denied

-bash-4.2$ exit

logout---------之前说过,没有家目录是不能登录的,所以这个练习也是为没有家目录的用户怎么让它可以登录

[[email protected] ~]# cp -r /etc/skel/ /home/nani   -r是完全复制(包括一些时间戳,而-a通常用在备份东西上)。

[[email protected] ~]# cd /home/nani

[[email protected] nani]# ls -a

.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla

[[email protected] nani]# chmod -R go= /home/nani/

[[email protected] nani]# chown -R nani:nani /home/nani/

[[email protected]ww nani]# ls -la

drwx------. 3 nani nani  74 Jul 26 02:45 .

-rw-------. 1 nani nani  18 Jul 26 02:45 .bash_logout

-rw-------. 1 nani nani 193 Jul 26 02:45 .bash_profile

[[email protected] nani]# su - nani

Last login: Sun Jul 26 02:44:59 EDT 2015 on pts/0

[[email protected] ~]$

[[email protected] ~]# ls -ld `which passwd`

-rwsr-xr-x. 1 root root 30768 Feb 22  2012 /usr/bin/passwd

bc是一个计算器,直接bc然后输入既可以了

所以我们可以手动改文件创建一个目录

passwd,shadow,group加一行   自主创建家目录就可以实现了

实例:手动添加用户hive ,基本组为hive(5000),附加组为mygroup

上图的实例中是没有密码的,所以不能直接ssh登录

这个密码密钥也是可以手动生成的

用这个命令:openssl

手动生成密码的方法(单向加密,输入一样的密码,一样的salt,结果的密钥也是一样的)

上图的意思是创建一个密码,进行加密

但是没有盐,没有杂质,后来加一点指定的盐

形成了一个有盐也有加密的一串密码

将其复制到/etc/shadow相应的用户目录下,就可以实现手动生成密码了

四、umask

决定了我们目录或者文件的默认权限的

注意的一点是我们的umask这样的设定只在当前的shell有用。

文件默认都没有执行权限的。

umask:遮罩码(反向掩码),用户创建文件或者目录的遮罩码

文件是 666-umask

目录是 777-umask

默认的root的umask是022   而普通用户默认的是002

上图是手动修改umask

注意一点的是:文件默认不能执行权限,如果算得的结果有执行权限,则将其权限加1

当然我们用chmod改变是可以的

站在用户的角度来讲,:SHELL的类型:

1.登录式shell

正常通过某终端登录(ssh登录过来的)

su - root

su -l root

2.非登录式shell

su root

图形终端下打开的命令窗口

自动执行的shell脚本

那有什么区别呢?说这个之前,我们介绍一下bash的配置文件:

bash的配置文件:

全局配置(我们编译这里的配置对所有用户都生效)

/etc/profile

/etc/profile.d/*.sh

/etc/bashrc

个人配置

~/.bash_profile

~/bashrc

一个环境变量全局和个人都有配置,那就是以个人的配置为主,可以这么理解,作用范围越小的,作用越生效

profile类的文件干什么用的?

设定环境变量

运行命令或脚本

bashrc类的文件:

设定本地变量

定义命令别名:如alias

登录式shell如何读取配置文件的?

/etc/profile  -->/etc/profile.d/*.sh -----> ~/.bash_profile -->~/.bashrc --> /etc/bashrc

而非登录式shell如何读取的呢?

~/.bashrc -->/etc/bashrc-->/etc/profile.d/*.sh

不读取用户的/etc/profile和~/.bash_profile环境文件

如果我要我个人用户nihao01登录就有提示信息,那就是“运行命令”,

需要在自己家目录的.bash_profile文件去添加即可

[[email protected] ~]$ vim .bash_profile

echo "hello,boy~,welcome to mageLinux ,Now time is `date`"

[[email protected] ~]$ su - root

[[email protected] ~]# su - nihao01

Last login: Sun Jul 26 03:43:03 EDT 2015 on pts/0

hello,boy~,welcome to mageLinux ,Now time is Sun Jul 26 03:43:34 EDT 2015

这两种有什么区别呢

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d/目录的配置文件中搜集shell的设置.

所以如果你有对/etc/profile有修改的话必须得重启你的修改才会生效,此修改对每个用户都生效。

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

如果你想对所有的使用bash的用户修改某个配置并在以后打开的bash都生效的话可以修改这个文件,修改这个文件不用重启,重新打开一个bash即可生效

bash:脚本解释器(理解解释,所以要知道什么叫做编译)

命令替换

[[email protected] ~]# ls -l /etc/shadow

----------. 1 root root 1624 Jul 26 02:44 /etc/shadow

[[email protected] ~]# ls -l `which passwd`

-rwsr-xr-x. 1 root root 27832 Jan 29  2014 /bin/passwd

时间: 2024-12-29 06:54:49

0221自学Linux_bash全局配置+个人配置+命令(useradd,finger,groupadd相关,chage,chown,chmod,umask)的相关文章

每天一个linux命令(21):chgrp,chown,chmod

这三个命令都是改变文件属性与权限的,就放一起写了 charp:改变文件所属用户组 chown:改变文件所属者 chmod:改变文件的权限 一个文件对于owner,group ,others有不同的权限,chmod就是用来改变权限的 ,每种身份都有三个权限,分别是r,w,x 各权限的分数为r:4 w:2 x:1 ,可以累加 比如当权限为rwx时就为7 所以改变权限最简单的方法为 chmod 777 filename 原文地址:https://www.cnblogs.com/wangshaowei/

Linux网络配置基础及命令使用

网络基础少不了,了解基本概念 MAC:Media Access Conctrol     网卡设备的固定且唯一的硬件地址,用于局域网通讯主机识别            IP:Internet Protocol     由网络号和主机号组成的通讯地址标识,用于界定源和目标主机 DNS:Domain Name System     1.DNS服务器是域名系统,用于解析主机名,实现基于主机名的通讯 2.全球的DNS服务器的域名数据都是相同的,备用DNS的作用是主DNS不可用时(挂掉)顶上,并非在主DN

修改npm安装的全局路径和配置环境变量的坑

修改npm安装的全局路径和配置环境变量的坑 转自:http://www.qdfuns.com/notes/30749/0f66fcf5e62eed010f744d0d4adaa870.html 我之前安装npm时全是默认安装,模块全部安装在C盘了,今天心血来潮,把路径改到了D盘,结果改完后模块都不能识别了,都提示XX模块不是内部命令,这其实是环境变量配置的问题,我都是按照网上的教程改的环境变量,但是照着改也有错,反复改了好几次都不行,最后终于改好了.步骤如下: 1.要在你需要存放模块的文件夹里建

zookeeper工作原理、安装配置、工具命令简介

1 Zookeeper简介Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等.2 zookeeper基本概念2.1角色Zookeeper中的角色主要有以下三类,如下表所示: 系统模型如图所示: 2.2设计目的1.最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能.2 .可靠性:具有简单.健壮.良好的性能,如果消息m被到一台服务器

修改npm安装的全局路径和配置环境变量

我之前安装npm时全是默认安装,模块全部安装在C盘了,今天心血来潮,把路径改到了D盘,结果改完后模块都不能识别了,都提示XX模块不是内部命令,这其实是环境变量配置的问题,我都是按照网上的教程改的环境变量,但是照着改也有错,反复改了好几次都不行,最后终于改好了.步骤如下: 1.要在你需要存放模块的文件夹里建两个文件夹我是在node目录下建了两个文件夹分别叫node_global和node_cache. 2.修改npm文件夹下的npmrc文件,打开修改里面的内容,原来的内容删掉,写入 prefix=

计算机网络基础(三)—交换机配置的简单命令

1.网络设备的构成 硬件:内存-RAM - 随即读取存储器 CPU flash-硬盘 ROM - read only memory  只读存储器 nvram- 非易失性内存 软件: 系统文件 --- IOS (internet operating system) 配置文件---running config   正在运行着的配置文件 该文件保存在内存中(RAM),设备断电时容易丢失 ---startup-config  开机启动时加载的配置文件 该文件保存在非易失性内存(nvram),设备断电时文

配置私有CA命令与配置证书(根据马哥的linux视频教程总结出来)

一:配置私用CA命令 1.编辑配置文件/etc/pki/tls/openssl.cnf 更改dir 将"../../CA"改为"/etc/pki/CA" 可以更改默认国家.省份.城市 mkdir certs  newcerts   crl touch index.txt touch serial echo 01 >serial 2.创建私有秘钥(公钥从此生成) 在/etc/pki/CA目录下 (umask 077;openssl genrsa 2048 >

Linux系统技巧|对于Linux系统管理员有用的 sudoers 配置|如何配置 sudo 命令在运行时而不输入密码

本文标签:  Linux系统技巧 配置sudo命令 sudoers文件 Linux用户权限   互联网杂谈 假设你在只有自己使用的计算机上运行 Linux 系统,比如在笔记本电脑上,在每次调用 sudo 时需要输入密码,长期下来就会觉得很乏味.因此,在本指南中,我们将描述如何配置 sudo 命令在运行时而不输入密码. 此设置在 /etc/sudoers 文件中完成,这是使用 sudo命令的默认安全策略;在用户权限指定部分. 重要:在 sudeors 文件中,默认打开的 authenticate

Linux 虚拟机安装后的配置和一些命令符笔记

一.安装后的配置 1.设在终端的字体为等宽字体 比如:DejaVu Sans Mono 2.将当前的普通用户加入到sudo用户组adduser en sudochmod +w /etc/sudoersmousepad /etc/sudoers 3.编辑source.list 加入国内的源两个选一个##163 源deb http://mirrors.163.com/debian/ jessie main non-free contribdeb http://mirrors.163.com/debi