在Linux系统中,除了用户手动创建的各种账号外,还包括随系统或程序安装过程而生成的大量账号。除了超级用户root之外,其他大量账号只是用来维护系统运作,启动或保持服务进程,一般时不容许登录的,因此也称为非登录用户。 对于Linux服务器中长期不用的用户账号,可以暂时将其锁定。账号配置信息放在/etc/passwd 和/etc/shadow 中,可以用chattr命令对账号进行管理 chattr +i 锁定文件 chattr -i 解锁文件 lsattr 查看文件状态 本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!
sudo命令允许受信任的用户作为另一个用户运行程序,默认情况下是root用户。如果您在命令行上花费了大量时间,那么sudo将会是您一直使用的命令之一。 通常,要授予sudo访问权限,请将用户添加到sudoers文件中定义的sudo组。在Debian,Ubuntu及其衍生产品上,sudo组的成员在基于RedHat的发行版(如CentOS和Fedora)上获得sudo权限,sudo组的名称是wheel。 在运行sudo命令之前,系统将提示该组的每个成员输入密码。这增加了额外的安全层,是向用户授予sudo权限的首选方式。 如下图: 但是,在某些情况下,例如运行自动脚本,您可能需要配置sudoers文件并允许某些用户运行sudo命令而不要求输入密码。 将用户添加到Sudoers文件 sudoers文件包含确定用户和组的sudo权限的信息。 您可以通过修改sudoers文件或将配置文件添加到/etc/sudoers.d目录来配置用户sudo访问权限。此目录中的所有文件都包含在sudoers文件中。 在进行任何更改之前,最好备份当前文件: linuxidc@linuxidc:~/www.linuxidc.com$ sudo cp /etc/sudoers{,.backup_$(date +%Y%m%d)} date命令会将当前日期附加到备份文件名。 使用visudo命令打开/etc/sudoers文件: sudo visudo 更改sudoers文件时始终使用visudo此命令检查后编辑,如果存在语法错误,则不会保存更改。 如果使用文本编辑器打开文件,语法错误将导致丢失sudo访问权限。 在大多数系统上,visudo命令使用vim文本编辑器打开/etc/sudoers文件。 如果您没有使用vim的经验,可以使用其他文本编辑器。 例如,要将编辑器更改为GNU nano,您将运行: sudo EDITOR=nano visudo 向下滚动到文件的末尾并添加以下行,该行允许用户“linuxidc”使用sudo运行任何命令而无需开始询问密码: /etc/sudoers linuxidc ALL=(ALL) NOPASSWD:ALL 如下图: 不要忘记使用您要授予访问权限的用户名更改“linuxidc”。 如果要允许用户仅运行特定命令而不输入密码,请在NOPASSWD关键字后指定命令。 例如,要仅允许使用mkdir和mv命令: 在/etc/sudoers文件 linuxidc ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv 完成后,保存文件并退出编辑器。 使用/etc/sudoers.d 您可以使用授权规则将新文件添加到/etc/sudoers.d目录,而不是编辑sudoers文件。 这种方法将使sudo权限的管理更加可维护。 打开文本编辑器并创建文件: sudo nano /etc/sudoers.d/linuxidc 您可以根据需要命名文件,但通常最好使用用户名作为文件名。 /etc/sudoers.d/linuxidc 添加与添加到sudoers文件中相同的规则: linuxidc ALL=(ALL) NOPASSWD:ALL 最后,保存文件并关闭编辑器。 总结 当您拥有非root用户需要执行管理任务的脚本时,运行不带密码的sudo非常有用。 以上所述是小编给大家介绍的Linux 中不输入密码运行 sudo 命令的方法,大家如有疑问可以留言,或者联系站长。感谢亲们支持!!! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
Busybox:瑞士军刀,里面装有很多小命令。 STEP 1:构建目录结构 创建根文件系统目录,主要包括以下目录 /dev /etc /lib /usr /var /proc /tmp /home /root /mnt /bin /sbin /sys #mkdir /home/rootfs #cd /home/rootfs #mkdir dev etc lib usr var proc tmp home root mnt sys STEP 2: 使用busybox构建/bin /sbin linuxrc 进入busybox-1.16.1目录,执行 #make defconfig #make menuconfig Busybox Setting -----> Build Options -----> //1选择将busybox进行静态编译 [*]Build BusyBox as a static binary (no shared libs) //2.指定交叉编译器为 (/usr/local/arm/4.3.2/bin/arm-linux-)Cross Compiler prefix Installation Options -----> (选择生成的文件存放目录,也可以直接放在rootfs下就不用拷贝了) //3.选择上 Don't use /usr Busybox Library Tuning---> [*]Username completion [*]Fancy shell prompts [*]Query cursor position from terminal //4.编译出的busybox的shell命令解释器支持显示当前路径及主机信息 保存退出 #make #make install 在busybox目录下会看见 _install目录,里面有/bin /sbin linuxrc三个文件将这三个目录或文件拷到第一步所建的rootfs文件夹下。 #cp bin/ sbin/ linuxrc /home/rootfs -ra 切记一定要带上-a的参数,因为bin目录里大部分都是链接,如果不带-a的参数,拷过去之后会做相应的复制,不再是链接的形式 STEP 3 构建etc目录:(主要有etc/inittab文件 、etc/init.d/rcs、etc/fstab) 1)进入根文件系统rootfs的etc目录,执行如下操作: 拷贝Busybox-1.16.1/examples/bootfloopy/etc/* 到当前目录下 #cp –r busybox-1.16.1/examples/bootfloopy/etc/* rootfs/etc 修改inittab,(根据它创建其他子进程) 原始文件为: 1 ::sysinit:/etc/init.d/rcS 2 ::respawn:-/bin/sh 3 tty2::askfirst:-/bin/sh...
// 当时我装这个也是折腾了一下午 , 所以写一个笔记记录一下; //如果哪里有问题的话我们可以一起讨论( qq: 2970911340,邮箱+@qq.com),这也是我第一次写博客 练练手 1. 安cmake工具 # yum install -y cmake 2. 创建mysql用户 #useradd -s /sbin/nologin mysql //设置为非登陆用户(安全) 3. 创建数据目录,该目录是用于数据库初始化时生成的库、表、日志等,不要直接在该目录下存放东西 # mkdir -p /mysql/data //目录名随意(后面设置时要对应),但目录所在分区剩余空间不能小于1g(不是很清楚) # chown mysql.mysql /mysql/ -R // 将该目录的属主属组设置为mysql 4.安装编译时所需要的开发包等 # yum install ncurses-devel openssl-devel gcc* -y 5.解压mysql二进制包,并编译 # cd /packet //cd 到 存放包的目录下 # tar xvf mysql-5.6.22.tar.gz # cd mysql-5.6.22 //直接开始编译,注意:一定要进入解压后的mysql包里在编辑 然后 cmake 接一大堆参数 有一些可以省略的 #cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql/data -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_SSL=bundled // -DCMAKE_INSTALL_PREFIX=/usr/local/mysql //指定安装目录 //-DMYSQL_DATADIR=/mysql/data //指定数据目录,上面创建的那个 //其它的略。。。 6.错误解决(一般来说按照上面来是不会出错的) # rm -rf CMakeCache.txt //当编译出现错误后 一定要先删除 CMakeCache.txt 再重新编译,该文件编译时会自动生成有点像 “记账本 ”记录编译时的一些信息。。。 //错误大全暂时先放一放后面更新。。。 7.安装 # make -j 4 // -j 4 使用4核编译,因为编译很要好久所以多给它几个u # make install 8.初始化 # yum install -y perl-Data-Dumper //会提示安装这个 # /usr/local/mysql/scripts/mysql_install_db –user=mysql –datadir=/mysql/data/ –basedir=/usr/local/mysql //初始化完毕后可以在 /mysql/data/ 目录下看到生成的基本库和日志等...
前言 如果你虚拟机IP是自动获取的,难免会碰到IP经常变动,给xshell相关连接工具使用造成不便,那么怎么固定IP且正常访问外网地址呢?由于主机网络采用的是自动获取IP方式,所以每次重启机器可能导致IP地址的变更,不利于项目的部署和运行,查阅了一些资料后,为Linux虚拟机配置了静态IP地址。让小编告诉你 通俗的说,静态ip就是虚拟机的ip 外界想要连你的虚拟机的ip LinuX登入管理员的账号密码 一、虚拟机选择桥接方式 1. 在编辑–虚拟网络编辑器中打开编辑器,如下面这两个图所示,选择VMnet0,在下面的类型选择桥接,即bridge,网卡不要选择自动(automatic),手动选择为自己现在主机的实际网卡名,然后点击应用,确定。 注意虚拟机默认设置的是自动桥接,笔记本一般会有2个网卡,一定要桥接到现在在上网的那个网卡,以免出错! 如何查看正在上网的网卡?——查看本机电脑的适配器设置,找到上网网卡 2. 虚拟机选择桥接模式(自定义VMnet0),确定。 二、在虚拟机中手动设置静态ip 先查看Linux的ip地址 centOS6 命令:ifconfig centOS7 命令:ip addr 记住:记录下网卡名称,本机是ens33 再看一下主机window的ip win+R –cmd —-ipconfig/all 本机ip:192.168.3.9 第一步:进入终端 /etc/sysconfig/network-scripts/目录 第二步:修改ifcfg-eth(xxx)文件 vim ifcfg-eth0 ps:centOS7 的ifcfg-ens33 跟刚才记录的一样 如果你看到你的linux发行版本中的网卡设备名称与我的不一致, 这太正常了, 不要问为什么, 改变嘛, 改变就是希望! (-), 这里只是说的linux的发行版本CentOS, 我可没说过是Ubuntu, 为什么说是CentOS呢?我们都知道在企业应用中linux的发行版本用的最多的还是 RedHat, 不过 RedHat 要收费了哈, 为什么呢?这是人家服务做的好嘛!再小一点的公司可能最多的用的是 CentOS, 为什么要用 CentOS 呢?这是因为 RedHat 把 CentOS 给收购了, CentOS 现在叫社区版本, RedHat 在做服务方面, 是先将服务放到社区版本 CentOS 上, 通过社区反馈, 当技术足够成熟时, 就会将新技术或者服务添加到 RedHat 中去, 所以用 CentOS 其实也就是间接的在使用 RadHat 啦!就是这个样子了, 当然你可以去百度一下去了解了解, 就不说让你Google了,在天国真是上网都有些力不从心呢,你懂就好!哈哈… 按i 编辑文件命令 最下面出现insert 就是可以编辑了 需要修改的属性有: ONBOOT=YES #no换成yes BOOTPROTO=static #dhcp换成static 添加: IPADDR=192.168.230.129 #静态ip地址 与主机中IP的前三位一致,最后一位需要修改,不要跟主机ip一样导致发生冲突 GATEWAY=192.168.230.1 #默认网关 和物理主机一样就可以了 NETMASK=255.255.255.0 #子网掩码 和物理主机一样就可以了 DNS1=8.8.8.8 #DNS,写谷歌的地址就可以了。 具体解释 TYPE=Ethernet # 网卡类型:为以太网 PROXY_METHOD=none # 代理方式:关闭状态 BROWSER_ONLY=no # 只是浏览器:否 BOOTPROTO=dhcp # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议] DEFROUTE=yes # 默认路由:是, 不明白的可以百度关键词 `默认路由` IPV4_FAILURE_FATAL=no # 是不开启IPV4致命错误检测:否 IPV6INIT=yes # IPV6是否自动初始化: 是[不会有任何影响,...
本文实例讲述了Linux环境下Apache服务器配置二级域名的方法。分享给大家供大家参考,具体如下: (以域名www.csdn.net为例,现在需要配置一个二级域名blog.csdn.net指向主机地址) 首先,确认开启Apache配置文件httpd.conf中的mod_rewrite模块: 这里科普一下这个模块: 接下来我们需要登录所购域名运营商的域名管理后台,点击‘域名解析’: 手动添加或一键快速添加下面两条默认解析,形如www.csdn.net和csdn.net的域名就可以访问主机地址了 添加一条需要配置的二级域名解析: 然后在Apache配置文件httpd.conf的末尾 添加如下域名配置: <VirtualHost *:80> ServerAdmin msllws@163.com DocumentRoot /usr/local/apache/htdocs ServerName www.csdn.net ServerAlias www.csdn.net csdn.net DirectoryIndex index.php index.html index.htm </VirtualHost> <VirtualHost *:80> ServerAdmin msllws@163.com DocumentRoot /usr/local/apache/htdocs/blog ServerName blog.csdn.net ServerAlias blog.csdn.net DirectoryIndex index.php index.html index.htm </VirtualHost> 重启Apache,这时形如blog.csdn.net的二级域名就可以访问了 希望本文所述对大家Linux服务器配置有所帮助。
supervisor是一个很好的守护程序管理工具,配置方面自动启动,日志输出,自动切割日志等等一系列强大功能,下面是在CentOS下安装使用supervisor的记录。 安装 # epel源 yum install epel-release # 安装supervisor yum install -y supervisor # 开机自启动 systemctl enable supervisord # 启动supervisord服务 systemctl start supervisord Bash 配置路径 # 主配置文件 /etc/supervisord.conf # 运行程序配置文件夹 /etc/supervisord.d/ Bash 操作命令 systemctl stop supervisord systemctl start supervisord systemctl status supervisord # 重新加载配置文件,不影响正在运行的程序 systemctl reload supervisord systemctl restart supervisord Bash 使用测试 写一个测试脚本test.php,记录启动次数和运行。 <?php try { $a = file_get_contents('./times.json'); } catch (Exception $e) { $a = 0; } $a ++; file_put_contents('./times.json', $a); echo date('Y-m-d H:i:s') . " 这是第{$a}次启动!!!!" . PHP_EOL; $i = 1; while (1) { echo date('Y-m-d H:i:s') . " 第{$i}次输出" . PHP_EOL; $i ++; sleep(5); } PHP 在程序配置文件夹/etc/supervisord.d中添加test.ini: [program:test] directory=/home/wwwroot/test.cc command=php test.php autostart=true autorestart=true stderr_logfile=/home/wwwroot/test.cc/log/error.log stdout_logfile=/home/wwwroot/test.cc/log/out.log Ini 上面只是一些必要的基本配置,更详细的配置参考: ;[program:theprogramname] ;command=/bin/cat ; the program (relative uses PATH, can take...
一、安装MySQL 本文是通过APT方式安装,安装的最新版本是5.7.21 (注意:通过APT方式安装的版本都是现在最新的版本,通过这种方式安装好之后开机自启动都已经配置好,和命令行上的环境变量,无需手动配置。) sudo apt-get install mysql-server 如果提示依赖不足,运行下面命令解决依赖问题,如果没出现依赖问题,那么就不需要使用此命令 sudo apt-get install -f 安装过程会提示输入两次root用户密码 说明:通过这种方式安装好之后开机自启动都已经配置好,和命令行上的环境变量,无需手动配置。 安装好之后会创建如下目录: 数据库目录:/var/lib/mysql/ 配置文件:/usr/share/mysql(命令及配置文件) ,/etc/mysql(如:my.cnf) 相关命令:/usr/bin(mysqladmin mysqldump等命令) 和/usr/sbin 启动脚本:/etc/init.d/mysql(启动脚本文件mysql的目录) 服务管理 启动 sudo service mysql start 停止 sudo service mysql stop 服务状态 sudo service mysql status 二、配置MySQL数据存放路径 我使用的是阿里云,阿里云赠送了20G的数据盘,挂载后的路径是/data。 创建文件夹 mkdir /data/mysql 把默认安装的MySql数据库复制到/data/mysql中并设置权限 sudo cp -R /var/lib/mysql/* /data/mysql sudo chown -R mysql:mysql /data/mysql <==修改新路径的访问权限 sudo service mysql stop <==停止mysql服务 如果不是新数据库.删除日志文件 rm -rf /database/mysql/ib_logfile0 rm -rf /database/mysql/ib_logfile1 修改 /etc/mysql/mysql.conf.d/mysqld.cnf 文件 : datadir = /data/mysql。 修改启动文件 sudo vim /etc/apparmor.d/usr.sbin.mysqld 将 /var/lib/mysql/ r /var/lib/mysql/** rwk 改为 /data/mysql/ r /data/mysql/** rwk 重启MySQL sudo /etc/init.d/apparmor restart sudo /etc/init.d/mysql restart 登录MySql并验证数据目录 mysql>show variables like ‘%dir%’; <==当显示datadir 为/data/mysql时,修改成功 如图所示 MySQL通过APT方式安装比较简单 以下为数据文件迁移的详细的命令流程,仅供参考 root@ww:~# mkdir /data/mysql root@ww:~# sudo cp -R /var/lib/mysql/* /data/mysql root@ww:~# sudo chown -R mysql:mysql /data/mysql...
方法一:通过修改.bashrc或.bash_profile文件来实现 通过修改home目录下的.bashrc或.bash_profile文件来实现。这两个文件选择其中一个在末尾加入如下一行,具体操作如下: [GeekDevOps@GeekDevOps /]$ cd ~ [GeekDevOps@GeekDevOps ~]$ echo "TMOUT=90">>.bashrc [GeekDevOps@GeekDevOps ~]$ source .bashrc 以上代码中我们选择的是.bashrc文件,如果您选择的是.bash_profile,那么也是一样的操作流程。以上我们设置用户自动登出时间为90秒,90秒后屏幕显示如下: [GeekDevOps@GeekDevOps ~]$ 等待输入超时:自动登出 Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(10.1.1.21:22) at 16:38:48. 方法二:通过修改ssh的配置文件来实现 ssh是我们在Linux系统中比较常用的一款工具,通过修改ssh的配置文件 /etc/ssh/sshd_config我们同样也可以实现超时自动登出功能,具体如下: [root@GeekDevOps ~]# vim /etc/ssh/sshd_config 找到以下两行: #ClientAliveInterval 90 #ClientAliveCountMax 3 去掉注释,修改后面的数字: ClientAliveInterval 60 ClientAliveCountMax 5 保存退出后,重启ssh服务: [root@GeekDevOps ~]# service sshd restart 这种方法对除了root之外的所有用户都是60秒登录超时,自动登出。第一行表示每90秒检测一次,第二行表示检测到5次不活动就断开连接。 方法三:通过修改ssh的配置文件来实现 在/etc/profile文件中,添加TMOUT字段,然后source /etc/profile即可。 TMOUT=300 export TOMOUT 方法四:创建脚本 以 root 用户登录,创建一个名为 autologout.sh 的新文件。 vim /etc/profile.d/autologout.sh 加入下面内容: TMOUT=100 readonly TMOUT export TMOUT 保存并退出该文件,为它添加可执行权限: chmod +x /etc/profile.d/autologout.sh 现在,登出或者重启系统。非活动用户就会在 100 秒后自动登出了。普通用户即使想保留会话连接但也无法修改该配置了,他们会在 100 秒后强制退出。 总结 以上所述是小编给大家介绍的Linux下实现不活动用户登录超时后自动登出,大家如有疑问可以留言,或者联系站长。感谢亲们支持!!! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
前言 在运维和管理 Linux 服务器的时候,我们最常用的一个命令就是 netstat,我常用这个命令来查看当前服务器上有哪些进程正在侦听端口,主要用来诊断网络服务的工作状态。 不过,最近有一次安装好一个 Ubuntu 发型版,发现默认没有安装 netstat,觉得非常奇怪,自己手动安装后,发现 man pages 提示,netstat 命令已经是 deprecated 了,建议使用 ss 命令代替。 This program is mostly obsolete. Replacement for netstat is ss. Replacement for netstat -r is ip route. Replacement for netstat -i is ip -s link. Replacement for netstat -g is ip maddr. netstat man pages netstat 的用法 netstat 有许多许多参数,我一般就用一种组合,以至于后来已经想不起来为什么是这几个参数了: netstat -npl 得到的结果是这样的: Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 655/systemd-resolve tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 890/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 30790/cupsd tcp 0 0 0.0.0.0:18025 0.0.0.0:* LISTEN 890/sshd tcp6 0 0 :::22 :::* LISTEN 890/sshd tcp6 0 0 ::1:631 :::* LISTEN 30790/cupsd tcp6 0 0 :::9090...