Articles of linux

如何检查一个普通用户是否具有超级用户权限

我想检查一个普通用户是否拥有超级用户权限(意味着root权限)。 我的操作系统是RHEL 6,我检查了/etc/passwdconfiguration文件,但没有用。 请告诉我任何方法在Linux机器上查找用户的当前特权。

如何否认“sudo su”

我有几个服务器,一些用户需要sudoers来工作。 问题是,当sudoers可以运行命令sudo su并以root用户身份login。 运行该命令似乎非常危险。 我尝试使用文件/ etc / sudoers中的命令别名,但它没有奏效。 有什么办法,他们是sudoers,但不能运行命令sudo su ?

nginx不会将头文件转发到apache(启用rpaf)

我试图在我的服务器上设置nginx作为前端和Apache作为后端。 一切正常,我已经安装了libapache2-mod-rpaf。 但阿帕奇并没有看到真正的客户端IP和一些基于IP的.htaccess限制根本不工作,导致阿帕奇只看到本地IP。 这里是nginx虚拟主机configuration^ server { listen 80; server_name domain; location ~* ^/(admin/|dump/|) { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://127.0.0.1:8080; proxy_redirect http://domain:8080/ /; } location / { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://127.0.0.1:8080; proxy_redirect http://domain:8080/ /; } location ~* ^.+\.(jpg|swf|flv|ico|txt|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ { access_log /var/www/logs/domain.nginx.access.log; error_page 404 […]

在Amazon EC2服务器之间复制数百万个文件(数百GB)的最快方法是什么?

我在Amazon EC2服务器上运行Linux。 我需要在同一个可用区域中复制数百万个文件,这两个文件在两个EC2系统之间总共有几百GB。 我不需要同步目录,我只需要将一个目录中的所有文件复制到另一台机器上的空目录。 什么是最快的方法来做到这一点? 有没有人看到或运行性能testing? rsync的? SCP? 我应该先压缩他们吗? 我应该分离驱动器,然后将其重新连接到正在复制到的机器上,然后复制它们? 是否通过EC2的私有IP加速传输? 任何想法将不胜感激。 注意:很抱歉,这个问题还不清楚,但是我在两个EC2系统之间复制数据,这两个系统都在同一个AWS可用区域中。

我有两台服务器,我怎么find不同的文件?

我有两台服务器,一台生产服务器和一台克隆的生产服务器镜像。 克隆的图像有一些区别,阻止它的工作。 我想列出一些差异。 服务器在不同的networking上,所以我不能轻松地比较它们。 我需要的是一个将创build生产服务器和克隆服务器上的校验和数据库并进行比较的东西。 有没有可以做到这一点的东西? 还是写一个脚本来做到这一点比较容易?

Apache httpd权限

我创build了一个目录 /xyz/www 具有以下权限: -rw-r–r–. 1 myuser developers 我编辑了我的http.conf: DocumentRoot "/xyz/www/" <Directory "/xyz/www/"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> 我得到403错误: You don't have permission to access / on this server. 查看日志: (13)Permission denied: Can't open directory for index: /xyz/www/ 我已经试过recursion添加777权限,但仍然有同样的问题。

如何在多个生产服务器上维护一个文件(Windows和Linux)

我的组织希望集中pipe理所有生产服务器的Oracle TNSnames文件。 当文件发生变化时,他们希望能够以最小的努力将更改推送到所有使用它的服务器。 已经考虑的方法: 集中式文件服务器(缺点:如果文件服务器或文件服务器的networking连接中断,则服务器无法访问关键文件) 每个服务器上的Subversion客户端(缺点:在生产中使用源代码控制工具,增加了复杂性) 将文件的单个副本存储在每个服务器上(缺点:更改文件内容涉及在多个不同的服务器上进行更改) 更新我可以使用DFS来做到这一点?

什么字符可以安全地用于在UNIX / Linux上命名文件?

在昨天之前,我只使用小写字母,数字,点( 。 )和下划线( _ )作为目录和文件命名。 今天我想开始使用更多的特殊字符。 哪些是安全的 (通过安全我的意思是我永远不会有任何问题)? ps:我不能相信这个问题在这个网站上还没有被问到,但是我已经search了“命名”一词,并且没有成功地阅读规范问题(大部分是关于计算机名称的)。 编辑#1 :(顺便说一下,我没有使用大写字母作为文件名,我不记得为什么,但是几个月后,我遇到了大写字母的问题: 有些操作系统不支持ascii !) 以下是昨天在工作中发生的事情:像往常一样,我必须创build一个自签名的SSL证书。 像往常一样,我使用的网站名称的文件:www2.example.com.key www2.example.com.crt www2.example.com.csr。 然后出现问题:生成通配符自签名证书。 我这样做,并命名文件example.com.key example.com.crt example.com.csr,这是误导(这是一个* .example.com证书)。 我回到家里,开始在apacheconfiguration文件的文件名中join一些星星,看它是否有效(在一台没用的家用电脑上,甚至没有出现)。 文件名中的星星真的吓到我了:有些同事/供应商/ …可以使用rm查找xarg脚本,这会导致http://www.ucs.cam.ac.uk/support/unix-support/misc/恐怖 ,已经有一个答案谈到灾难。 编辑#2 : 只是想到:不需要逃脱。 任何人都知道为什么它不用于文件名? 编辑#3 : 让我们总结一下我所了解的东西: 。 和_在文件名中是安全的。 需要转义的特殊字符(例如空格| ( * ))应该被避免。 应该避免一些其他的特殊字符出于各种原因( / – :) 那么所有其他的,如%或= ?

有fail2ban发送通知给被禁止的方

我在一些CentOS 5和6服务器上configuration了fail2ban ,每当IP被禁止时,它会向我发送一个带有whois IP的电子邮件。 是否有可能configurationfail2ban也发送通知的电子邮件从whois报告? 这是我的监狱configuration: # /etc/fail2ban/jail.conf [ssh-iptables] enabled = true filter = sshd action = iptables-allports[name=SSH, protocol=all] sendmail-whois[name=SSH, [email protected], sender=fail2ban] logpath = /var/log/secure maxretry = 3 是否有某种变数我可以把它dest=发送到whois电子邮件?

如何根据部署到环境的环境在puppet中生成自定义的sudoers文件?

系统pipe理员存在于所有环境的sudoers文件中,但是其他sudoers不是。 不同的环境都有略微不同的sudoers。 大多数情况下,90%的用户是相同的,10%是不同的,所以我们不能只有一个sudoers文件的一切。 目前,我们正在使用10个不同文件的木偶,如sudoers.production1,sudoers.production2,sudoers.production3,sudoers.testing1,sudoers.staging1等等。 然后Puppet根据服务器的$ domain(例如:dbserver.staging1.acme.com)或$ hardwaremodel选取要部署的文件。 它工作正常,但这是一个噩梦来维护这么多的文件。 我想基于服务器的域自动生成sudoers文件,并且只有一个大文件,所有用户和所有环境都具有sudoers权限。 东西看起来像: User_Alias ADMINS = abe, bob, carol, dave case $domain { "staging1.acme.com" { #add dev1,dev2,tester1,tester2 to sudoers file } "testing2.acme.com" { #add tester1, tester3, tester4 to sudoers file } 最好的办法是什么呢? 欢迎提出替代scheme。 我会很感激任何提示。 更新1: 出于安全原因,我们宁愿不连接位于puppet客户端的文件夹中的一堆文件,以防有人将文件放在那里(恶意或不合法),或者中断合并的文件或插入某些文件。 最重要的是,为了可用性,我们希望在puppet服务器上保留sudoers相关的文件(片段或完整)的数量为3(prod / stage / test),或者最好是1个文件。 这个文件将(以某种方式)在puppet服务器上生成sudoers文件,并向每个puppet客户端发送一个定制文件。 这样做的目的只是在一个文件中search一个用户名,并且比在11个文件上更快地删除它。 当把一个用户添加到一堆环境中时,它不会那么快,但是只需打开一个文件就可以看到,大大减less了遗漏的可能性。 我们的Sudo版本是1.6.9p8,所以我们不能使用/sudoers.d文件夹,只有sudoers文件。 UPDATE2: 我一直在search一些,我刚刚发现了这个,我花了一个小时在看: https://github.com/saz/puppet-sudo#readme […]