Function: tramp-sh-handle-set-file-selinux-context
tramp-sh-handle-set-file-selinux-context is a byte-compiled function
defined in tramp-sh.el.gz.
Signature
(tramp-sh-handle-set-file-selinux-context FILENAME CONTEXT)
Documentation
Like set-file-selinux-context for Tramp files.
Source Code
;; Defined in /usr/src/emacs/lisp/net/tramp-sh.el.gz
(defun tramp-sh-handle-set-file-selinux-context (filename context)
"Like `set-file-selinux-context' for Tramp files."
(with-parsed-tramp-file-name (expand-file-name filename) nil
(when (and (consp context)
(tramp-remote-selinux-p v))
(let ((user (and (stringp (nth 0 context)) (nth 0 context)))
(role (and (stringp (nth 1 context)) (nth 1 context)))
(type (and (stringp (nth 2 context)) (nth 2 context)))
(range (and (stringp (nth 3 context)) (nth 3 context))))
(when (tramp-send-command-and-check
v (format "chcon %s %s %s %s %s"
(if user (format "--user=%s" user) "")
(if role (format "--role=%s" role) "")
(if type (format "--type=%s" type) "")
(if range (format "--range=%s" range) "")
(tramp-shell-quote-argument localname)))
(if (and user role type range)
(tramp-set-file-property
v localname "file-selinux-context" context)
(tramp-flush-file-property v localname "file-selinux-context"))
t)))))