2017年7月25日 星期二

/squid-cf__metadata.shm): (13) Permission denied 錯誤訊息

Squid Cache: Version 3.5.26 錯誤訊息
ATAL: Ipc::Mem::Segment::create failed to shm_open(/squid-cf__metadata.shm): (13) Permission denied

原因:
缺少 /dev/shm

解決方法:
建立  /dev/shm mode=1777
mkdir -p /dev/shm && mount tmpfs -t tmpfs /dev/shm-o size=128,,mode=1777

其他相關錯誤
缺少 /var/cache/squid 或權限不符


Squid 一般組態選項摘要

http_port 連接埠
    Squid 用的連接埠,預設 3128

cache_peer 主機名稱 類型 代理連接埠 ICP 連接埠
     設定建立協同工作的快取網路。

cache_mem 大小
    設定常用回覆的記憶體容量。預設值 8 MB。

cache_dir 儲存類型 快取目錄 快取大小 層級 1 目錄 層級 2 目錄
    定義磁碟快取的目錄。

  cache_access_log 記錄檔案 , cache_log 記錄檔案 , cache_store_log 記錄檔案
    設定記錄檔

client_netmask 網路遮罩
    透過套用子網路遮罩在記錄檔案中遮罩用戶端的 IP 位址。

ftp_user 電子郵件
    設定 Squid 用於匿名 FTP 登入的密碼。

cache_mgr 電子郵件
    Squid 當機時傳送郵件地址。

logfile_rotate 值
    設定 Squid 輪替記錄檔案。預設值為 10,表示輪替編號為 0 到 9 的記錄檔案。

append_domain 網域
    指定當未指定網域時自動附加的網域。

forwarded_for 狀態
    選項設定為 on/off

negative_ttl 時間 , negative_dns_ttl 時間

never_direct allow ACL 名稱

Linux capabilities

1.kernel 2.2 以後支援
2.使用 extended attributes 中的 security方式支援
3.支援的檔案系統 Ext2, Ext3, Ext4, Btrfs, JFS, XFS, Reiserfs
4.常用指令 getcap,setcap

Capabilities list
CAP_AUDIT_CONTROL (since Linux 2.6.11)
CAP_AUDIT_WRITE (since Linux 2.6.11)
CAP_BLOCK_SUSPEND (since Linux 3.5)
CAP_CHOWN
CAP_DAC_OVERRIDE
CAP_DAC_READ_SEARCH
CAP_FOWNER
CAP_DAC_OVERRIDE
CAP_DAC_READ_SEARCH
CAP_FSETID
CAP_IPC_LOCK
CAP_IPC_OWNER
CAP_KILL
CAP_LEASE (since Linux 2.4)
CAP_LINUX_IMMUTABLE
CAP_MAC_ADMIN (since Linux 2.6.25)
CAP_MAC_OVERRIDE (since Linux 2.6.25)
CAP_MKNOD (since Linux 2.4)
CAP_NET_ADMIN
CAP_NET_BIND_SERVICE
CAP_NET_BROADCAST
CAP_NET_RAW
CAP_SETGID
CAP_SETFCAP (since Linux 2.6.24)
CAP_SETPCAP
CAP_SETUID
CAP_SYS_ADMIN
CAP_SYS_BOOT
CAP_SYS_CHROOT
CAP_SYS_MODULE
CAP_SYS_NICE
CAP_SYS_PACCT
CAP_SYS_PTRACE
CAP_SYS_RAWIO
CAP_SYS_RESOURCE
CAP_SYS_TIME
CAP_SYS_TTY_CONFIG
CAP_SYSLOG (since Linux 2.6.37)
CAP_WAKE_ALARM (since Linux 3.0)    

modes:
    e: Effective  This means the capability is “activated”.
    p: Permitted  This means the capability can be used/is allowed.
    i: Inherited  The capability is kept by child/subprocesses upon execve() for example.

使用範例
getfattr -d -m "security\\." /bin/ping
getcap /bin/ping
setcap -r /bin/ping
setcap 'cap_net_admin,cap_net_raw+ep' /bin/ping

複製 capabilities 參數
cp -a $src $dst
rsync -X $src $dst
tar -s, --preserve-order, --same-order
                             sort names to extract to match archive
      --selinux              Save the SELinux context to the archive
      --xattrs     

losetup 使用摘要

dd if=/dev/zero of=example.img bs=10240 count=512
mkfs.ext3 -F -q -m0 example.img
losetup /dev/loop0 example.img

mount /dev/loop0 /mnt
mount -o mand example.img /mnt

umount /mnt
losetup -d /dev/loop0

Bash 比較Linux 版本

func_uname_gt(){ v=0;
read v</proc/sys/kernel/osrelease&&v=${v%%-*}||return 1;
A=$(echo $v|$exe_awk 'BEGIN {FS="."};{print($1=="")?0:$1}').$(echo $v|$exe_awk 'BEGIN {FS="."};{print($2=="")?0:$2}')$(echo $v|$exe_awk 'BEGIN {FS="."};{print($3=="")?0:$3}');
B=$(echo $1|$exe_awk 'BEGIN {FS="."};{print($1=="")?0:$1}').$(echo $1|$exe_awk 'BEGIN {FS="."};{print($2=="")?0:$2}')$(echo $1|$exe_awk 'BEGIN {FS="."};{print($3=="")?0:$3}');
echo $A $B|$exe_awk '{print($1>$2)?0:1}'&&return 0;return 1;};

func_uname_gt 2.1.7;
 /proc/sys/kernel/random/uuid