Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

1
LXC容器内部和外部的用户权限?
我正在服务器上的Docker LXC容器内部运行某些服务,并且我开始对它们进行认真的处理。 我尚不清楚的一件事是容器内部和外部用户权限的工作方式。例如,如果我在一个容器中运行MySQL并将其数据目录设置为/dataDocker卷(即Docker卷),那么该容器内部和外部的权限如何影响访问策略? 显然,其想法是在容器(即mysql:mysql)中以其自己的用户身份运行MySQL,并赋予其对该目录的读写权限。我认为这将非常简单,只需chmod进入目录等即可。但是,这在容器外如何工作?现在我有了这个名为“数据”的Docker共享卷,如何管理对它的访问控制? 我特别希望能够在Docker容器外部运行非特权用户,该用户将定期访问MySQL共享卷并备份数据。 如何设置权限,用户和组,以便主机上的特定用户可以读取/写入Docker共享卷中的文件和文件夹?

4
ln -s具有相对于pwd的路径
我正在尝试创建一堆符号链接,但我不知道为什么这行得通 ln -s /Users/niels/something/foo ~/bin/foo_link 而这 cd /Users/niels/something ln -s foo ~/bin/foo_link 不是。 我相信这与foo_link链接到foo /Users/niels/bin而不是/Users/niels/something 因此,问题是,如何在不实际输入的情况下创建指向绝对路径的符号链接? 作为参考,我使用的是Mac OS X 10.9和Zsh。
26 bash  shell  symlink  ln 

7
需要sudo的脚本是否应该失败(如果没有),或者使用sudo和提示符?
我有一个脚本,可以对背光亮度进行精细控制,并且需要sudo运行。本质上是这样的: backlight="/sys/class/backlight/acpi_video0/brightness" echo $1 | tee $backlight 并居住在~/bin/backlight-adjust。该脚本需要sudo特权,因为tee $backlight正在写入特权位置。因此,如果不与一起运行,它将失败sudo。 这种方法有一个问题,因为我不能随便跑sudo backlight-adjust,因为~/bin不在$PATH的sudo环境下,只有在我的环境。所以我必须运行sudo env "PATH=$PATH" backlight-adjust或类似的方法。 或者,我可以这样写: backlight="/sys/class/backlight/acpi_video0/brightness" echo $1 | sudo tee $backlight 并提示我输入密码。 第二种方法对我来说更好,因为我不必记住键入sudo。它会提示我。而且我可以保持$PATH原样。总体上来说,这样做更方便,但是有什么原因使我不应该第二种方式呢? (如果正在运行Xubuntu 14.04,并且我的shell是GNU bash 4.2.45,则可以这样做。)

5
为什么遍历文件比将文件读入内存和计算两次快两倍?
我正在比较以下 tail -n 1000000 stdout.log | grep -c '"success": true' tail -n 1000000 stdout.log | grep -c '"success": false' 与以下 log=$(tail -n 1000000 stdout.log) echo "$log" | grep -c '"success": true' echo "$log" | grep -c '"success": false' 令人惊讶的是,第二个比第一个要花几乎三倍的时间。它应该更快,不是吗?
26 bash  performance  io 

5
我可以禁用updatedb吗?
有updatedb必要吗?我从没使用过locate,我的服务器往往有数以千万计的文件,这些文件通常会使updateb长时间运行,并消耗MySQL和/或其他软件所需的I / O。 我可以将其从cron中删除,然后期望一切正常吗?(我指的是在服务器上找到的常用软件:Linux,cpanel,mysql,apache,php等)。

9
如何在需要sudo进行根访问和基于ssh密钥的身份验证的系统上使用SFTP?
我希望能够使用SFTP编辑需要root权限的文件。 我正在使用基于SSH密钥的身份验证-智能卡上的rsa密钥。 如果系统需要sudo来执行根级命令,该如何解决? 我可以创建仅绕过SFTP的sudo的方法吗? 有没有办法保持sudo和密钥身份验证。 我正在使用Windows连接到Ubuntu。我需要它来与Mac和Ubuntu一起使用。 我了解如何执行SSH隧道管理系统服务。目前,我直接使用root用户登录,但是密码登录已禁用。我不明白如何同时使用sudo和SFTP。最好的做法是要求以非root用户身份登录,然后要求使用sudo,因为日志将记录为每个命令授予谁升级特权。 使用基于密钥的身份验证时,我应该对此加以关注吗?或者这在安全性/日志记录方面是微不足道的?似乎基于密钥的身份验证在日志中记录了用户的序列号,并且您可以有多个密钥供root用户标识每个用户。对我来说,这似乎与使用sudo效果相同。我错了吗?
26 ssh  sftp 




3
ps:完整命令太长
美好的一天! 我使用“ ps”查看启动进程的命令。问题是命令太长,“ ps”不能完全显示它。 示例:我使用命令'ps -p 2755 | 较少”并具有以下输出 PID TTY STAT TIME COMMAND 2755 ? Sl 305:05 /usr/java/jdk1.6.0_37/bin/java -Xms64m -Xmx512m -Dflume.monitoring.type=GANGLIA -Dflume.monitoring.hosts=prod.hostname.ru:8649 -cp /etc/flume-ng/conf/acrs-event:/usr/lib/flume-ng/lib/*:/etc/hadoop/conf:/usr/lib/hadoop/lib/activation-1.1.jar:/usr/lib/hadoop/lib/asm-3.2.jar:/usr/lib/hadoop/lib/avro-1.7.4.jar:/usr/lib/hadoop/lib/commons-beanutils-1.7.0.jar:/usr/lib/hadoop/lib/commons-beanutils-core-1.8.0.jar:/usr/lib/hadoop/lib/commons-cli-1.2.jar:/usr/lib/hadoop/lib/commons-codec-1.4.jar:/usr/lib/hadoop/lib/commons-collections-3.2.1.jar:/usr/lib/hadoop/lib/commons-compress-1.4.1.jar:/usr/lib/hadoop/lib/commons-configuration-1.6.jar:/usr/lib/hadoop/lib/commons-digester-1.8.jar:/usr/lib/hadoop/lib/commons-el-1.0.jar:/usr/lib/hadoop/lib/commons-httpclient-3.1.jar:/usr/lib/hadoop/lib/commons-io-2.1.jar:/usr/lib/hadoop/lib/commons-lang-2.5.jar:/usr/lib/hadoop/lib/commons-logging-1.1.1.jar:/usr/lib/hadoop/lib/commons-math-2.1.jar:/usr/lib/hadoop/lib/commons-net-3.1.jar:/usr/lib/hadoop/lib/guava-11.0.2.jar:/usr/lib/hadoop/lib/jackson-core-asl-1.8.8.jar:/usr/lib/hadoop/lib/jackson-jaxrs-1.8.8.jar:/usr/lib/hadoop/lib/jackson-mapper-asl-1.8.8.jar:/usr/lib/hadoop/lib/jackson-xc-1.8.8.jar:/usr/lib/hadoop/lib/jasper-compiler-5.5.23.jar:/usr/lib/hadoop/lib/jasper-runtime-5.5.23.jar:/usr/lib/hadoop/lib/jaxb-api-2.2.2.jar:/usr/lib/hadoop/lib/jaxb-impl-2.2.3-1.jar:/usr/lib/hadoop/lib/jersey-core-1.8.jar:/usr/lib/hadoop/lib/jersey-json-1.8.jar:/usr/lib/hadoop/lib/jersey-server-1.8.jar:/usr/lib/hadoop/lib/jets3t-0.6.1.jar:/usr/lib/hadoop/lib/jettison-1.1.jar:/usr/lib/hadoop/lib/jetty-6.1.26.cloudera.2.jar:/usr/lib/hadoop/lib/jetty-util-6.1.26.cloudera.2.jar:/usr/lib/hadoop/lib/jline-0.9.94.jar:/usr/lib/hadoop/lib/jsch-0.1.42.jar:/usr/lib/hadoop/lib/jsp-api-2.1.jar:/usr/lib/hadoop/lib/jsr305-1.3.9.jar:/usr/lib/hadoop/lib/junit-4.8.2.jar:/usr/lib/hadoop/lib/kfs-0.3.jar:/usr/lib/hadoop/lib/log4j-1.2.17.jar:/usr/lib/hadoop/lib/mockito-all-1.8.5.jar:/usr/lib/hadoop/lib/native:/usr/lib/hadoop/lib/paranamer-2.3.jar:/usr/lib/hadoop/lib/protobuf-java-2.4.0a.jar:/usr/lib/hadoop/lib/servlet-api-2.5.jar:/usr/lib/hadoop/lib/snappy-java-1.0.4.1.jar:/usr/lib/hadoop/lib/stax-api-1.0.1.jar:/usr/lib/hadoop/lib/xmlenc-0.52.jar:/usr/lib/hadoop/lib/xz-1.0.jar:/usr/lib/hadoop/lib/zookeeper-3.4.5-cdh4.3.0.jar:/usr/lib/hadoop/.//bin:/usr/lib/hadoop/.//cloudera:/usr/lib/hadoop/.//etc:/usr/lib/hadoop/.//hadoop-annotations-2.0.0-cdh4.3.0.jar:/usr/lib/hadoop/.//hadoop-annotations.jar:/usr/lib/hadoop/.//hadoop-auth-2.0.0-cdh4.3.0.jar:/usr/lib/hadoop/.//hadoop-auth.jar:/usr/lib/hadoop/.//hadoop-common-2.0.0-cdh4.3.0.jar:/usr/lib/hadoop/.//hadoop-common-2.0.0-cdh4.3.0-tests.jar:/usr/lib/hadoop/.//hadoop-common.jar:/usr/lib/hadoop/.//lib:/usr/lib/hadoop/.//libexec:/usr/lib/hadoop/.//sbin:/usr/lib/hadoop-hdfs/./:/usr/lib/hadoop-hdfs/lib/asm-3.2.jar:/usr/lib/hadoop-hdfs/lib/commons-cli-1.2.jar:/usr/lib/hadoop-hdfs/lib/commons-codec-1.4.jar:/usr/lib/hadoop-hdfs/lib/commons-daemon-1.0.3.jar:/usr/lib/hadoop-hdfs/lib/commons-el-1.0.jar:/usr/lib/hadoop-hdfs/lib/commons-io-2.1.jar:/usr/lib/hadoop-hdfs/lib/commons-lang-2.5.jar:/usr/lib/hadoop-hdfs/lib/commons-logging-1.1.1.jar:/usr/lib/hadoop-hdfs/lib/guava-11.0.2.jar:/usr/lib/hadoop-hdfs/lib/jackson-core-asl-1.8.8.jar:/usr/lib/hadoop-hdfs/lib/jackson-mapper-asl-1.8.8.jar:/usr/lib/hadoop-hdfs/lib/jasper-runtime-5.5.23.jar:/usr/lib/hadoop-hdfs/lib/jersey-core-1.8.jar:/usr/lib/hadoop-hdfs/lib/jersey-server-1.8.jar:/usr/lib/hadoop-hdfs/lib/jetty-6.1.26.cloudera.2.jar:/usr/lib/hadoop-hdfs/lib/jetty-util-6.1.26.cloudera.2.jar:/usr/lib/hadoop-hdfs/lib/jline-0.9.94.jar:/usr/lib/hadoop-hdfs/lib/jsp-api-2.1.jar:/usr/lib/hadoop-hdfs/lib/jsr305-1.3.9.jar:/usr/lib/hadoop-hdfs/lib/log4j-1.2.17.jar:/usr/lib/hadoop-hdfs/lib/protobuf-java-2.4.0a.jar:/usr/lib/hadoop-hdfs/lib/servlet-api-2.5.jar:/usr/lib/hadoop-hdfs/lib/xmlenc-0.52.jar:/usr/lib/hadoop-hdfs/lib/zookeeper-3.4.5-cdh4.3.0.jar:/usr/lib/hadoop-hdfs/.//bin:/usr/lib/hadoop-hdfs/.//cloudera:/usr/lib/hadoop-hdfs/.//hadoop-hdfs-2.0.0-cdh4.3.0.jar:/usr/lib/hadoop-hdfs/.//hadoop-hdfs-2.0. 因此,命令行太长,命令停止了中间短语。我怎么看整个?
26 linux  ps 



2
Linux bash中的日期时间
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 6年前关闭。 我正在尝试以以下形式显示日期时间 2013/07/08 16:52:13 通过在bash脚本中使用命令: dt=`date '+%d/%m/%Y_%H:%M:%S'` 哪个变量用于填充CSV文件。 日期和时间之间唯一接受的字符是“ _”(下划线)或“-”,输出为 07/08 / 2013_16:52:13 如何获得日期和时间之间的空间?我几乎(我希望)尝试了一切。
26 date  time 

2
即使在我的路上,Bash仍未找到程序
我在路上有一个程序。使用指定的完整路径执行时,程序将运行。但是当我仅使用其名称运行该程序时,找不到该程序。 本质上,我想了解以下输出是如何实现的,以及如何解决该问题,以便在没有指定完整路径的情况下可以实际找到我的程序: root:/usr/local/bin# ./siege **************************************************** siege: could not open /usr/local/bin/etc/siegerc run 'siege.config' to generate a new .siegerc file **************************************************** root:/usr/local/bin# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games root:/usr/local/bin# siege bash: /usr/bin/siege: No such file or directory root:/usr/local/bin# wtf!?!? 我在使用bash的Ubuntu 12.04上。另外请注意,由于此问题的目的,围困的警告输出并不重要,因为我仅对是否可以找到并调用该程序感兴趣。
26 bash  path 

4
服务器如何确定要发送到哪个客户端端口?
据我了解,这是客户端发出连接请求时发生的情况: 服务器将绑定到特定的端口号。端口号始终绑定到侦听进程。由于只有服务器正在侦听传入的连接,因此我们不需要在客户端进行绑定 服务器将在该端口号上继续执行listeninig。 客户端将发送一个connect()请求。 服务器将使用接受请求accept()。一旦服务器接受客户端的请求,内核分配服务器进一步随机端口号send()和receive(),因为不能用于发送和监听服务器上的相同的端口号,和先前端口仍然是聆听新的联系 考虑到所有这些,服务器如何找出客户端接收的端口?我知道客户端将发送带有源端口和目标端口的TCP段,因此服务器将使用该段的源端口作为其目标端口,但是服务器调用什么功能来查找该端口?是accept()吗
26 tcp  socket 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.