selabel_file
ÐÐЯ
ÐÐÐÐÐ
ÐÐÐСÐÐÐÐ
ÐÐÐ ÐÐÐТРЫ
ФÐÐÐЫ
ФÐÐ ÐÐТ ФÐÐÐÐ
ФоÑÐ¼Ð°Ñ ÐºÐ¾Ð½ÑекÑÑов Ñайлов
ФоÑÐ¼Ð°Ñ Ñайла подÑÑановки
ÐÐ ÐÐÐЧÐÐÐЯ
СÐÐТРÐТРТÐÐÐÐ
ÐÐТÐРЫ
ÐÐЯ
selabel_file − инÑеÑÑÐµÐ¹Ñ Ð¿ÑоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÑок SELinux в пÑоÑÑÑанÑÑве полÑзоваÑÐµÐ»Ñ Ð¸ ÑоÑÐ¼Ð°Ñ Ñайла конÑигÑÑаÑии Ð´Ð»Ñ Ð²Ð½ÑÑÑенней ÑлÑÐ¶Ð±Ñ ÐºÐ¾Ð½ÑекÑÑов Ñайлов
ÐÐÐÐÐ
#include
int selabel_lookup(struct selabel_handle *hnd,
char **context,
const char *path, int mode);
int selabel_lookup_raw(struct selabel_handle *hnd,
char **context,
const char *path, int mode);
ÐÐÐСÐÐÐÐ
ÐнÑÑÑеннÑÑ ÑлÑжба конÑекÑÑов Ñайлов ÑопоÑÑавлÑÐµÑ ÑоÑеÑÐ°Ð½Ð¸Ñ ’пÑÑÑ/Ñежим’ Ñ ÐºÐ¾Ð½ÑекÑÑами безопаÑноÑÑи. ÐÑо дейÑÑвие ÑлÑÐ¶Ð¸Ñ Ð´Ð»Ñ Ð½Ð°ÑÐ¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿ÑавилÑного конÑекÑÑа Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñайла пÑи повÑоÑном пÑоÑÑавлении меÑок в Ñайловой ÑиÑÑеме. ÐеобÑодимо оÑвободиÑÑ Ð²Ð¾Ð·Ð²ÑаÑÑннÑй context Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ freecon(3).
selabel_lookup(3) опиÑÑÐ²Ð°ÐµÑ ÑÑнкÑÐ¸Ñ Ñ ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑаемÑми знаÑениÑми и кодами оÑибок. Тем не менее, далее пÑиводиÑÑÑ Ð±Ð¾Ð»ÐµÐµ подÑобное опиÑание ÑледÑÑÑÐ¸Ñ Ð·Ð½Ð°Ñений errno Ð´Ð»Ñ Ð²Ð½ÑÑÑенней ÑлÑÐ¶Ð±Ñ ÐºÐ¾Ð½ÑекÑÑов Ñайлов:
ENOENT |
Ðе найден конÑекÑÑ, ÑооÑвеÑÑÑвÑÑÑий path и mode, – ÑÑо ÑообÑение бÑÐ´ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑено и в Ñом ÑлÑÑае, еÑли ÑеÑÐ¸Ñ Ñайлов конÑекÑÑов Ñайлов Ð¸Ð¼ÐµÐµÑ ÐºÐ¾Ð½ÑекÑÑ < |
ÐÑгÑÐ¼ÐµÐ½Ñ path должен бÑÑÑ ÑÑÑановлен в полнÑй пÑÑÑ Ðº ÑайлÑ, назнаÑеннÑй конÑекÑÑ ÐºÐ¾ÑоÑого пÑовеÑÑеÑÑÑ. ÐÑгÑÐ¼ÐµÐ½Ñ mode должен бÑÑÑ ÑÑÑановлен в биÑÑ Ñежима Ñайла, как опÑеделено lstat(2). ÐÑгÑÐ¼ÐµÐ½Ñ mode Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÑлевÑм, но в ÑÑом ÑлÑÑае, возможно, не ÑдаÑÑÑÑ ÑÑÑановиÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ðµ ÑооÑвеÑÑÑвие.
ÐÑе ÑообÑениÑ, ÑозданнÑе Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ selabel_lookup(3), по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾ÑпÑавлÑÑÑÑÑ Ð² stderr. ÐÑо поведение можно измениÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ selinux_set_callback(3).
selabel_lookup_raw(3) ÑабоÑÐ°ÐµÑ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¸Ñно selabel_lookup(3), но не вÑполнÑÐµÑ Ð¿ÑеобÑазование конÑекÑÑа.
Ð Ñазделе ФÐÐÐЫ пÑиводиÑÑÑ Ð¾Ð¿Ð¸Ñание Ñайлов конÑигÑÑаÑии, коÑоÑÑе иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑекÑÑа Ñайла.
ÐÐÐ ÐÐÐТРЫ
Ðомимо глобалÑнÑÑ Ð¿Ð°ÑамеÑÑов, опиÑание коÑоÑÑÑ Ð¿Ñиведено в selabel_open(3), ÑÑа внÑÑÑеннÑÑ ÑлÑжба ÑаÑпознаÑÑ ÑледÑÑÑие паÑамеÑÑÑ:
SELABEL_OPT_PATH
ÐнаÑение ÑÑого паÑамеÑÑа, оÑлиÑное Ð¾Ñ null, опÑеделÑÐµÑ Ð¿ÑÑÑ Ðº ÑайлÑ, коÑоÑÑй бÑÐ´ÐµÑ Ð¾ÑкÑÑÑ Ð²Ð¼ÐµÑÑо ÑÑандаÑÑного Ñайла конÑекÑÑов Ñайлов. ÐÑо знаÑение Ñакже иÑполÑзÑеÑÑÑ ÐºÐ°Ðº базовое Ð¸Ð¼Ñ Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ð¼Ñн локалÑнÑÑ Ñайлов наÑÑÑойки.
SELABEL_OPT_BASEONLY
ÐÑлиÑное Ð¾Ñ null знаÑение ÑÑого паÑамеÑÑа ознаÑаеÑ, ÑÑо лÑбÑÑ Ð»Ð¾ÐºÐ°Ð»ÑнÑÑ Ð½Ð°ÑÑÑÐ¾Ð¹ÐºÑ ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑекÑÑа Ñайла ÑледÑÐµÑ Ð¸Ð³Ð½Ð¾ÑиÑоваÑÑ.
SELABEL_OPT_SUBSET
ÐÑлиÑное Ð¾Ñ null знаÑение ÑÑого паÑамеÑÑа инÑеÑпÑеÑиÑÑеÑÑÑ ÐºÐ°Ðº пÑеÑÐ¸ÐºÑ Ð¿ÑÑи, напÑимеÑ, “/etc”. ÐÑдÑÑ Ð·Ð°Ð³ÑÑÐ¶ÐµÐ½Ñ ÑолÑко Ñе ÑпеÑиÑикаÑии конÑекÑÑов Ñайлов, пеÑвÑй ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ ÐºÐ¾ÑоÑÑÑ ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ ÑказаннÑм пÑеÑикÑом. ÐÑо Ð¼Ð¾Ð¶ÐµÑ ÑÑкоÑиÑÑ Ð²Ñполнение поиÑка, но, возможно, не ÑдаÑÑÑÑ Ð½Ð°Ð¹Ñи пÑÑÑ, коÑоÑÑй не наÑинаеÑÑÑ Ñ Ñказанного пÑеÑикÑа. ÐÐ°Ð½Ð½Ð°Ñ Ð¾Ð¿ÑимизаÑÐ¸Ñ Ð¿Ð¾Ð¸Ñка болÑÑе не ÑÑебÑеÑÑÑ (и ÑÑÑаÑела), вмеÑÑо Ð½ÐµÑ Ð¸ÑполÑзÑеÑÑÑ file_contexts.bin.
ФÐÐÐЫ
То, какие ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑекÑÑов Ñайлов иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑекÑÑа по ÑмолÑаниÑ, завиÑÐ¸Ñ Ð¾Ñ Ð¿Ð°ÑамеÑÑа SELABEL_OPT_PATH, пеÑеданного в selabel_open(3). ÐÑли ÑÑо NULL, Ñо SELABEL_OPT_PATH по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ð·Ð½Ð°Ñение ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑекÑÑов Ñайлов акÑивной полиÑики (коÑоÑое возвÑаÑÐ°ÐµÑ selinux_file_context_path(3)), в ином ÑлÑÑае бÑÐ´ÐµÑ Ð¸ÑполÑзовано ÑакÑиÑеÑкое Ñказанное знаÑение SELABEL_OPT_PATH.
ÐÑли паÑамеÑÑ SELABEL_OPT_BASEONLY задан, бÑдÑÑ Ð¾Ð±ÑабаÑÑваÑÑÑÑ ÑледÑÑÑие ÑайлÑ:
1. |
ÐбÑзаÑелÑнÑй Ñайл конÑекÑÑов Ñайлов – ÑÑо либо полное Ð¸Ð¼Ñ Ñайла из SELABEL_OPT_PATH.value, либо (еÑли NULL) пÑÑÑ, коÑоÑÑй возвÑаÑÐ°ÐµÑ selinux_file_context_path(3). |
||
2. |
ÐеобÑзаÑелÑнÑе ÑÐ°Ð¹Ð»Ñ Ð´Ð»Ñ Ð·Ð°Ð¼ÐµÐ½Ñ Ð¸Ð¼Ñн (Ñайл Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»Ñного иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ñайл Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ Ð´Ð¸ÑÑÑибÑÑивами), коÑоÑÑе пÑиÑваиваÑÑ Ð¿ÑÐµÐ²Ð´Ð¾Ð½Ð¸Ð¼Ñ Ð¿ÑÑи Ð´Ð»Ñ ’наÑодÑÑейÑÑ Ð² памÑÑи’ веÑÑии Ñайла конÑекÑÑов Ñайлов. |
ÐÑи ÑÐ°Ð¹Ð»Ñ Ð¸Ð¼ÐµÑÑ Ñо же имÑ, ÑÑо и Ñ Ð¾Ð±ÑзаÑелÑного Ñайла конÑекÑÑов Ñайлов, и ÑаÑÑиÑÐµÐ½Ð¸Ñ .subs и .subs_dist.
ÐÑли паÑамеÑÑ SELABEL_OPT_BASEONLY не задан, бÑдÑÑ Ð¾Ð±ÑабоÑÐ°Ð½Ñ ÑледÑÑÑие ÑайлÑ:
1. |
ÐбÑзаÑелÑнÑй Ñайл конÑекÑÑов Ñайлов, коÑоÑÑй ÑвлÑеÑÑÑ Ð»Ð¸Ð±Ð¾ полнÑм именем Ñайла из SELABEL_OPT_PATH.value, либо (еÑли NULL) пÑÑÑм, коÑоÑÑй возвÑаÑÐ°ÐµÑ selinux_file_context_path(3). |
||
2. |
ÐеобÑзаÑелÑнÑй Ñайл локалÑной наÑÑÑойки, имеÑÑий Ñо же имÑ, ÑÑо и обÑзаÑелÑнÑй Ñайл конÑекÑÑов Ñайлов, и ÑаÑÑиÑение .local. |
selinux_file_context_local_path(3) веÑнÑÑ Ð¿ÑÑÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ðº ÑÑÐ¾Ð¼Ñ ÑайлÑ.
3. |
ÐеобÑзаÑелÑнÑй Ñайл наÑÑÑойки домаÑнего каÑалога полÑзоваÑелÑ, имеÑÑий Ñо же имÑ, ÑÑо и обÑзаÑелÑнÑй Ñайл конÑекÑÑов Ñайлов, и ÑаÑÑиÑение .homedirs. |
selinux_file_context_homedir_path(3) веÑнÑÑ Ð¿ÑÑÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ðº ÑÑÐ¾Ð¼Ñ ÑайлÑ.
4. |
ÐеобÑзаÑелÑнÑе ÑÐ°Ð¹Ð»Ñ Ð´Ð»Ñ Ð·Ð°Ð¼ÐµÐ½Ñ Ð¸Ð¼Ñн (Ñайл Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»Ñного иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ñайл Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ Ð´Ð¸ÑÑÑибÑÑивами), коÑоÑÑе пÑиÑваиваÑÑ Ð¿ÑÐµÐ²Ð´Ð¾Ð½Ð¸Ð¼Ñ Ð¿ÑÑи Ð´Ð»Ñ ’наÑодÑÑейÑÑ Ð² памÑÑи’ веÑÑии Ñайла конÑекÑÑов Ñайлов (и .local и/или .homedirs, еÑли они имеÑÑÑÑ). ÐÑи ÑÐ°Ð¹Ð»Ñ Ð¸Ð¼ÐµÑÑ Ñо же имÑ, ÑÑо и обÑзаÑелÑнÑй Ñайл конÑекÑÑов Ñайлов, и ÑаÑÑиÑÐµÐ½Ð¸Ñ .subs и .subs_dist. |
selinux_file_context_subs_path(3) и selinux_file_context_subs_dist_path(3) веÑнÑÑ Ð¿ÑÑи по ÑмолÑÐ°Ð½Ð¸Ñ Ðº ÑÑим Ñайлам.
Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑеÑÐ¸Ñ Ñайлов конÑекÑÑов Ñайлов:
/etc/selinux/{SELINUXTYPE}/contexts/files/file_contexts
/etc/selinux/{SELINUXTYPE}/contexts/files/file_contexts.local
/etc/selinux/{SELINUXTYPE}/contexts/files/file_contexts.homedirs
/etc/selinux/{SELINUXTYPE}/contexts/files/file_contexts.subs
/etc/selinux/{SELINUXTYPE}/contexts/files/file_contexts.subs_dist
Ðде {SELINUXTYPE} – запиÑÑ Ð¸Ð· Ñайла конÑигÑÑаÑии selinux config (Ñм. selinux_config(5)).
ÐбÑзаÑелÑнÑм ÑвлÑеÑÑÑ ÑолÑко Ñайл file_contexts, вÑе оÑÑалÑнÑе ÑвлÑÑÑÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑми.
ÐапиÑи внÑÑÑи ÑеÑии Ñайлов конÑекÑÑов Ñайлов Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð² Ñазделе ФÐÐ ÐÐТ ФÐÐÐÐ.
ФÐÐ ÐÐТ ФÐÐÐÐ
ФоÑÐ¼Ð°Ñ ÐºÐ¾Ð½ÑекÑÑов Ñайлов
ÐÐ°Ð¶Ð´Ð°Ñ ÑÑÑока внÑÑÑи file_contexts и двÑÑ Ñайлов наÑÑÑойки (.local и .homedirs) Ð¸Ð¼ÐµÐµÑ ÑледÑÑÑий вид:
pathname [file_type] context
Ðде:
pathname
ÐпÑеделÑÑÑÐ°Ñ Ð¸Ð¼Ñ Ð¿ÑÑи запиÑÑ, коÑоÑÐ°Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð² виде ÑегÑлÑÑного вÑÑажениÑ.
file_type
ÐеобÑзаÑелÑнÑй Ñип Ñайла, коÑоÑÑй ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð·:
−b – ÑÑÑÑойÑÑво блоÑного ввода-вÑвода −c – ÑÑÑÑойÑÑво ÑимволÑного ввода-вÑвода
−d – каÑалог −p – именованнÑй канал
−l – ÑимволиÑеÑÐºÐ°Ñ ÑÑÑлка −s – ÑокеÑ
−− – обÑÑнÑй Ñайл
context
ÐапиÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð´Ð½Ð¸Ð¼ из ÑледÑÑÑиÑ:
a. |
ÐонÑекÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑи, коÑоÑÑй бÑÐ´ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñен ÑÑÐ¾Ð¼Ñ ÑÐ°Ð¹Ð»Ñ (Ñо еÑÑÑ Ð²Ð¾Ð·Ð²ÑаÑÑн как context). |
||
b. |
ÐнаÑение < |
ÐÑимеÑ:
# ./contexts/files/file_contexts
# pathname file_type context
/. /.. /.cache system_u:object_r:default_t:s0
/[^/]+ −− system_u:object_r:etc_runtime_t:s0
/tmp/. /tmp/.. /tmp/.esd-1000 /tmp/.font-unix /tmp/.ICE-unix /tmp/.Test-unix /tmp/.urpmi-1000 /tmp/.X0-lock /tmp/.X11-unix /tmp/.xfsm-ICE-77ORX1 /tmp/.XIM-unix <
ФоÑÐ¼Ð°Ñ Ñайла подÑÑановки
ÐÐ°Ð¶Ð´Ð°Ñ ÑÑÑока внÑÑÑи Ñайлов подÑÑановки (.subs и .subs_dist) Ð¸Ð¼ÐµÐµÑ Ð²Ð¸Ð´:
subs_pathname pathname
Ðде:
pathname
ÐÑÑÑ, коÑоÑÑй ÑооÑвеÑÑÑвÑÐµÑ Ð·Ð°Ð¿Ð¸Ñи в одном или неÑколÑÐºÐ¸Ñ ÑÐ°Ð¹Ð»Ð°Ñ ÐºÐ¾Ð½ÑигÑÑаÑии полиÑики конÑекÑÑов Ñайлов.
subs_pathname
ÐÑÑÑ, коÑоÑÑй ÑÑÐ°Ð½ÐµÑ Ð¿Ñевдонимом имени пÑÑи (ÑÑиÑаеÑÑÑ ÑавнознаÑнÑм пÑи поиÑке).
ÐÑимеÑ:
# ./contexts/files/file_contexts.subs
# pathname subs_pathname
/myweb /var/www
/myspool /var/spool/mail
ÐÑÐ¸Ð¼ÐµÑ Ð²ÑÑе: когда в selabel_lookup(3) пеÑедаÑÑÑÑ Ð¿ÑÑÑ /myweb/index.html, ÑÑнкÑÐ¸Ñ Ð·Ð°Ð¼ÐµÐ½ÑÐµÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ /myweb на /var/www, поÑÑÐ¾Ð¼Ñ Ð±ÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑледÑÑÑий пÑÑÑ:
/var/www/index.html
ÐÐ ÐÐÐЧÐÐÐЯ
1. |
ÐÑли конÑекÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð¿ÑовеÑенÑ, необÑодимо ÑказаÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑй паÑамеÑÑ SELABEL_OPT_VALIDATE пеÑед вÑзовом selabel_open(3). ÐÑли ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ Ñказан, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð²Ð¾Ð·Ð²ÑаÑÑн недейÑÑвиÑелÑнÑй конÑекÑÑ. |
||
2. |
ÐÑли ÑеÑÐ¸Ñ Ñайлов конÑекÑÑов Ñайлов ÑодеÑÐ¶Ð¸Ñ Ð¼Ð½Ð¾Ð³Ð¾ запиÑей, selabel_open(3) Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ вÑполнÑÑÑ ÑÑение в ÑÐ°Ð¹Ð»Ð°Ñ Ð¸ (еÑли ÑÑо запÑоÑено) пÑовеÑÐºÑ Ð·Ð°Ð¿Ð¸Ñей. |
||
3. |
РнекоÑоÑÑÑ Ð²ÐµÑÑиÑÑ SELinux Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑиÑÑÑÑÑвоваÑÑ Ñайл file_contexts.template, но он ÑÑÑаÑел. |
Файл Ñаблона Ð¸Ð¼ÐµÐµÑ ÑÐ¾Ñ Ð¶Ðµ ÑоÑмаÑ, ÑÑо и Ñайл file_contexts, а Ñакже Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ ÐºÐ»ÑÑевÑе Ñлова HOME_ROOT, HOME_DIR, ROLE и USER. ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð±Ñла пеÑемеÑена в ÑÑанилиÑе полиÑик и ÑпÑавлÑеÑÑÑ semodule(8) и genhomedircon(8).
СÐÐТРÐТРТÐÐÐÐ
selinux(8), selabel_open(3), selabel_lookup(3), selabel_stats(3), selabel_close(3), selinux_set_callback(3), selinux_file_context_path(3), freecon(3), selinux_config(5), lstat(2), selinux_file_context_subs_path(3), selinux_file_context_subs_dist_path(3), selinux_file_context_homedir_path(3), selinux_file_context_local_path(3), semodule(8), genhomedircon(8)
ÐÐТÐРЫ
ÐеÑевод на ÑÑÑÑкий ÑзÑк вÑполнила ÐеÑаÑименко ÐлеÑÑ