设置开机自启的脚本,用户管理


作者George

归档:学习笔记

2018/1/5

本章正题:用户管理

1.1 企业面试题

1.1.1  让一个命令或脚本开机自启动有什么方法?

1)/etc/rc.local

2)chkconfig

1.1.2 一个脚本或命令通过chkconfig开启自启动

1. 把这个脚本放在/etc/init.d下面

vim /etc/init.d/kai

echo "georgekai"

2. 脚本要有执行权限

chmod +x /etc/init.d/kai

查看:ll /etc/init.d/kai

3. 让chkconfig进行管理

chkconfig --add kai

注:会提示 service kai does not support chkconfig (kai脚本不支持)

解决方法:1. 模仿其他命令脚本,需要加入“# chkconfig: 2345 99 99” ,注意#号后面有空格

2. 第一个99表示开机的顺序,最后一个99表示关机的顺序

4. 自己写的脚本都是99也没什么问题,系统都不一样

小结:

1. 必须放在/etc/init.d下面,赋予它执行权限

2. 开头要有chkconfig要求格式:#  chkconfig: 2345 99 99

3. 添加到chkconfig管理

1.2 用户管理

1.2.1 用户分类

1. root UID :0

2. 虚拟用户 UID :1-499 1) shell是/sbin/nologin

2)不能登录系统

3. 普通用户  UID :500-65535

注:1)UID user id = 500-60000 ×××号码

2)GID =groupd id =用户组的id

1.2.2 用户相关的配置文件

1. /etc/passwd 用户的信息

注:每一列的含义要知道,/bin/bash = /bin/sh

cat /etc/shells下有许多shell,dash是ubuntu默认shell

2. /etc/shadow 用户密码信息

3. /etc/group 用户组信息

4. /etc/gshadow 用户组密码信息

实例1-1 root用户密码忘记如何解决?

1. 单用户模式

2. 救援模式

1.2.3 查看用户属于哪个用户组

id george

1.2.4  查看用户组中有哪些用户

cat /etc/group

1.2.5 与用户相关的目录/etc/skel

1. /etc/skel作用:新用户家目录的模板(相当于cp /etc/skel /home/oldboy)

1)~/.base_logout :用户退出系统的时候会运行这个文件中的内容

2)~/.base_profile :作用和/etc/profile一样

3)~/.base_baserc :作用和/etc/basere一样

2. 常见故障一::-bse-4.1$  -bse-4.2$

  原因:这个用户家目录下面与环境变量有关的文件没了

  解决方法:1. 切换到故障用户

2. cp /etc/skel/.bash*  /home/geogred/

注:别用.* 复制,因为包含.. ,表示上级目录

  常见故障二:-bash: /etc/profile: Permission denied

  原因:/etc/目录的权限不是755,导致权限不足

  解决方法:chmod 755 /etc/

  常见故障三:-bash: unset: -p: invalid option

unset: usage: unset [-f] [-v] [name ...]

  原因:/etc/profile中 unset  -fpathmunge  -f后面少了一个空格

  解决方法:1. vim /etc/profile 修改最后一行为unset  -f  pathmunge

1.2.6 用户管理的命令

1. 创建用户useradd

参数:-u 指定uid

-s 指定用户使用的shell

-M 表示不创建家目录,一般创建虚拟用户使用

-g  指定用户的属组

-G 指定用户的附加组,用逗号隔开

-c 添加用户说明信息

例1:[[email protected] ~]# useradd -u 888  -M -s /bin/nologin alex1

2. 删除用户

建议使用:在/etc/passwd中用户的那一行前面加上#注释

【删除用户用userdel(默认会删除家目录的文件,不建议使用)】

参数:-r (连窝端)会删除家目录

3. 修改用户信息(针对已存在的用户)usermod

    参数: -u 修改uid

-s 修改用户使用的shell

-g 修改用户的属组

-c 修改用户说明信息

-G  添加用户的附加组,用逗号隔开

例1:[[email protected] ~]# usermod -c "hello oldbaby" -s /bin/bash alex

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

alex:x:888:999:hello oldbaby:/home/alex:/bin/bash

4. 管理密码passwd

1)非交互式设置密码(不需要一问一答)

echo '123456'|passwd --stdin george

注:history -c 清楚命令历史记录

2)交互式

passwd george

3)密码保险柜:

keepass(本地保险柜) lastpass(在线保险柜)

4) 如何让系统更安全

1.最小化安装系统

2.禁止root登录,修改ssh端口号

3.文件系统权限 +i +a

4.给重要文件或命令做一个指纹md5sum(指定随着文件内容改变)

1)创建指纹

touch oldboy.txt

md5sum oldboy.txt (会自动生成一个密文密码)

2)记录指纹

md5sum oldboy.txt > police.log

echo oldboy >> oldboy.txt

md5sum oldboy.txt

3)根据指纹库 对比

md5sum --c police.log

提示:oldbot.txt FAILED 说明指纹变化了,(显示OK)说明没变

注:指纹是用来验证数据是否发生变化了,不会影响访问文件

4)定时任务+md5sum定时检查

1.2.7  组用户相关命令

1)创建用户组groupadd

参数:-g 指定gid号

2)删除用户组groupdel

1.2.8 用户查询命令

1. id 查看用户是否存在

如:id georgekai

2. w 查看当前登录的用户

注:1.FROM 表示从哪登录的

2.FROM 中 “-” 表示在机房服务器中直接登录的

3. 查看系统负载的命令

w  uptime top

4. top 查看动态进程  (相当于uptime / ps aux /w /free )

P  : 按照CPU使用率排序

M  :按照内存使用率排序

K  : 杀死进程,指定PID号

5. ps  查看静态

-ef 显示所有正在运行的进程

aux 显示进程详细信息

6. sort 自动排序

ps aux | sort -rhk4

注:-r  倒叙

-n 把内容当做数字进行排序

-k4 表示第4列

-h 以人类可形式排序(带单位,按单位大小显示)

7. last 显示用户最近登录的情况

8. lastlog 显示系统中每个用户最近一次的远程登录情况

注:只有远程登录的用户才会查看到,切换过去的不算

总结:

1. 面试题-让一个脚本开机自动的方法 etc/rc.local  chkconfig

2. 如何让一个脚本被chkconfig管理

3. 与用户有关的文件和目录

4. 案例提示:-bash-4.1$ 原因和解决过程

5. 一堆命令:用户,磁盘

6. 添加虚拟用户

7. 查看系统性能命令,系统管理命令,进程管理命令

原文地址:http://blog.51cto.com/13055758/2057899

时间: 2024-10-09 14:00:37

设置开机自启的脚本,用户管理的相关文章

CentOS7_86_64创建Oracle实例且设置开机自启以及允许远程连接

一.前言 先说明下,这里系统是CentOS7_86_64,Oracle版本是Oracle10g R2,假设系统和数据库都已安装完毕.前面有一篇文章详细说明了CentOS7下安装Oracle10g的流程,需要的同学可以去看一下.传送门:CentOS7_86_64安装Oracle10g R2血泪史. 二.检查/设置系统防火墙 说明:这里主要是为了设置oracle允许远程连接,如果没有这个需求,可以先不用管. 1.客户端检测网络通过性 此步骤不执行也可以,如果没条件检测的话.这里只是说明下网络是否正常

设置开机自启

1.添加开机自启文件 [[email protected] ~]# cat /lib/systemd/system/nginx.service #!/bin/bash[Unit]Description=nginxAfter=network.target [Service]Type=forkingExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/loc

ubuntu下设置开机自启守护进程

开机启动 安装sysv-rc-conf: sudo apt-get install sysv-rc-conf 执行: sudosysv-rc-conf 你的程序名称 on 到这里就可以的,但重启之后你在终端会找不到这个程序的信息,但它其实在后台运行. 设置开机启动的另一种方法就是直接把启动命令写到/etc/rc.local文件里面.

ubuntu 18.04 设置开机自启命令

参考自:https://www.cnblogs.com/qingshangucheng/p/10183583.html 原理:systemd 会自动读取  /etc/systemd/system 下的配置文件(按我理解就是执行该文件夹下的所有可执行文件) 而 /lib/systemd/system 下有一个 rc.local.service 文件,编辑它(需要增加 [Install] 段,才能开机自启),并且做一个它的软链接,放到 /etc/systemd/system 下,其中有执行 /etc

CentOS7_x86_64部署WebLogic11g并设置开机自启

场景:一个JavaEE项目,之前一直是windows下Oracle10g+Tomcat7,现在应客户要求,需要换成Linux下Oracle10g+WebLogic11g,捯饬了几天,终于弄差不多了.菜鸟的血泪史.下面结合自己的实践流程整理下. 一.安装JDK 不管是开发也好,生产环境也好,jdk是我们必不可少的,安装也比较简单,从官网上下载linux下安装包,我这里是jdk-7u79-linux-x64.rpm.然后按照如下流程安装: 1.查看本地已经安装的JDK 一般系统可能会自带OpenJD

Linux精简开机自启服务脚本

操作系统启动后,会自动启动一些服务与程序.其中有些程序并非服务器正常运行所必须. 对于服务器而言,运行多余的服务与程序,这些不会给服务器加分,反而会带来其他的隐患: 1.占用资源:每运行多一个服务,就多占一份资源. 2.带来安全漏洞:每一个服务,都可能存在漏洞或者潜在漏洞.多余的服务会增加维护成本. 因此精简服务器自启的程序是十分必要的.对于新安装的服务器,可以用脚本直接精简服务,然后再部署所需的服务.但是对于正在运行的服务器,精简时就需要进行判断!否则精简完重启后,有些必要的服务进程不会自动启

MySQL代理Atlas在CentOS7.0中的源码安装实践(设置开机自启)

提示:如要去掉SQL过滤(无WHERE子句的UPDATE和DELETE)功能,可以先修改源码: 修改文件 Atlas-2.2.1\plugins\proxy\proxy-plugin.c 修改方法 is_in_blacklist,直接返回FALSE 依赖包: glib-2.32.4.tar.xz glibc-devel  libevent-devel  lua-devel  openssl-devel  flex  mysql-devel xz  gettext-devel 分步命令: # 安装

seafile设置开机自启

为seafile,seahub,mariadb,nginx,docker加入开机自动启动,省去每次服务器重新开机需要手工再运行一次1.设置docker开机自启动2.设置mariadb开机自启动 3.设置nginx开机自启动 4.为seafile和seahub添加一个服务启动文件命令:vi /usr/lib/systemd/system/seafile.service 5.为seafile加入开机自动启动 6.把原启动的seafile和seahub停止,使用systemctl start seaf

Linux设置开机自启服务的常见方法:

方法1:执行ntsysv命令 [[email protected] data]# ntsysv -bash: ntsysv: command not found [[email protected] data]# yum  install  ntsysv 方法2:执行setup命令 [[email protected] data]# setup -bash: setup: command not found [[email protected] data]#yum install setupto